Mailspring/Dockerfile
Evan Morikawa 17b7653109 [dev, cloud-*] make Docker run plain npm install and conslidate deps
Summary:
It doesn't really make sense to have the root package.json have any
dependencies since it's never "packaged" or built itself. Everything
really should be a dev dependency. This was only separated before because
the Dockerfile unnecessarily added the --production flag.

This will make the docker build take a smidge longer, but I think it's
worth the extra minute to keep the dependencies orderly and sematically
correct

Test Plan: re-run docker build

Reviewers: jerm, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3978
2017-02-21 14:33:00 -05:00

28 lines
1.1 KiB
Docker

# This Dockerfile builds a production-ready image of K2 to be used across all
# services. See the Dockerfile documentation here:
# https://docs.docker.com/engine/reference/builder/
# Use the latest Node 6 base docker image
# https://github.com/nodejs/docker-node
FROM node:6
# Copy everything (excluding what's in .dockerignore) into an empty dir
COPY . /home
WORKDIR /home
# This installs global dependencies, then in the postinstall script, runs lerna
# bootstrap to install and link cloud-api, cloud-core, and cloud-workers.
# We need the --unsafe-perm param to run the postinstall script since Docker
# will run everything as sudo
RUN npm install --unsafe-perm
# This uses babel to compile any es6 to stock js for plain node
RUN node packages/cloud-core/build/build-n1-cloud
# External services run on port 80. Expose it.
EXPOSE 5100
# We use a start-aws command that automatically spawns the correct process
# based on environmpackages/cloud-coreent variables (which changes instance to instance)
CMD packages/cloud-core/_n1cloud_docker_launcher.sh ${AWS_SERVICE_NAME}