2016-07-08 04:42:44 +08:00
|
|
|
# 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/
|
|
|
|
|
2016-07-07 07:22:32 +08:00
|
|
|
# Use the latest Node 6 base docker image
|
2016-07-07 06:30:35 +08:00
|
|
|
# https://github.com/nodejs/docker-node
|
|
|
|
FROM node:6
|
2016-07-07 07:22:32 +08:00
|
|
|
|
|
|
|
# Copy everything (excluding what's in .dockerignore) into an empty dir
|
2016-07-08 04:36:38 +08:00
|
|
|
COPY . /home
|
2016-07-07 07:22:32 +08:00
|
|
|
WORKDIR /home
|
|
|
|
|
2016-07-08 04:37:33 +08:00
|
|
|
RUN npm install --production
|
2016-07-07 07:22:32 +08:00
|
|
|
|
2016-07-08 04:42:44 +08:00
|
|
|
# This will do an `npm install` for each of our modules and then link them all
|
|
|
|
# together. See more about Lerna here: https://github.com/lerna/lerna We have
|
|
|
|
# to run this separately from npm postinstall due to permission issues.
|
2016-07-07 07:22:32 +08:00
|
|
|
RUN node_modules/.bin/lerna bootstrap
|
|
|
|
|
2016-12-17 02:08:21 +08:00
|
|
|
# This uses babel to compile any es6 to stock js for plain node
|
|
|
|
RUN npm run build-n1-cloud
|
|
|
|
|
2016-11-23 05:24:26 +08:00
|
|
|
# External services run on port 80. Expose it.
|
2016-11-23 05:25:58 +08:00
|
|
|
EXPOSE 5100
|
2016-07-07 07:22:32 +08:00
|
|
|
|
|
|
|
# We use a start-aws command that automatically spawns the correct process
|
|
|
|
# based on environment variables (which changes instance to instance)
|
2016-07-08 07:32:46 +08:00
|
|
|
CMD ./node_modules/pm2/bin/pm2 start --no-daemon ./pm2-prod-${AWS_SERVICE_NAME}.yml
|