Created
July 16, 2017 18:57
-
-
Save nodox/d853b5f2f7441ba5a6197e0cdf94a674 to your computer and use it in GitHub Desktop.
Docker + Nvm + pm2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Dockerfile | |
# using debian:jessie for it's smaller size over ubuntu | |
# FROM debian:jessie | |
FROM ubuntu:xenial | |
# Replace shell with bash so we can source files | |
RUN rm /bin/sh && ln -s /bin/bash /bin/sh | |
# Set environment variables | |
ENV appDir /var/www/app/current | |
# Run updates and install deps | |
RUN apt-get update | |
RUN apt-get install -y -q --no-install-recommends \ | |
apt-transport-https \ | |
build-essential \ | |
ca-certificates \ | |
curl \ | |
g++ \ | |
gcc \ | |
git \ | |
make \ | |
nginx \ | |
sudo \ | |
wget \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& apt-get -y autoclean | |
ENV NVM_DIR /usr/local/nvm | |
ENV NODE_VERSION 7.10.1 | |
# Install nvm with node and npm | |
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash \ | |
&& source $NVM_DIR/nvm.sh \ | |
&& nvm install $NODE_VERSION \ | |
&& nvm alias default $NODE_VERSION \ | |
&& nvm use default | |
# Set up our PATH correctly so we don't have to long-reference npm, node, &c. | |
ENV NODE_PATH $NVM_DIR/versions/node/v$NODE_VERSION/lib/node_modules | |
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH | |
# Set the work directory | |
RUN mkdir -p /var/www/app/current | |
WORKDIR ${appDir} | |
# Add our package.json and install *before* adding our application files | |
ADD package.json ./ | |
RUN npm i --production | |
# Install pm2 so we can run our application | |
RUN npm i -g pm2 | |
# Add application files | |
ADD . /var/www/app/current | |
# Expose the port | |
EXPOSE 3005 | |
CMD ["pm2", "start", "processes.json", "--no-daemon"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment