File: //home/arjun/projects/buyercall_forms/buyercall/Dockerfile.demo
# Use the barebones version of Python 2.7.10.
FROM python:2.7.16-stretch
MAINTAINER Nick Janetakis <nick.janetakis@gmail.com>
# Install any packages that must be installed.
RUN apt-get update && apt-get install -qq -y curl build-essential libffi-dev libpq-dev \
libcairo2 libpango1.0-0 libpangocairo-1.0.0 \
postgresql-client-9.6 libpng-dev libjpeg-dev libxml2-dev libxslt1-dev \
--fix-missing --no-install-recommends
RUN ( curl -sL https://deb.nodesource.com/setup_8.x | bash - ) && apt-get update && apt-get -y install nodejs
# Setup the install path for this service.
ENV INSTALL_PATH /buyercall
RUN mkdir -p $INSTALL_PATH
# Update the workdir to be where our app is installed.
WORKDIR $INSTALL_PATH
# Ensure packages are cached and only get updated when necessary.
COPY requirements.txt requirements.txt
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# Ensure frontend packages are cached and only get updated when necessary.
COPY package.json package.json
RUN npm install --production --unsafe-perm
ENV SERVER_NAME HTTP_HOST_HERE
ENV PUBLIC_PATH https://HTTP_HOST_HERE/
ENV URL_SCHEME https
# Copy the source from the build machine to the image at the WORKDIR path.
COPY build ./build
COPY config ./config
COPY buyercall/assets ./buyercall/assets
COPY buyercall/translations ./buyercall/translations
# Process all of the assets.
COPY . .
RUN NODE_ENV='production' npm run-script build
# Give access to the CLI script.
RUN pip install --editable .
# Create a volume so that nginx can read from it.
VOLUME ["$INSTALL_PATH/build/public"]
# Allow us to customize the entry point of the image.
COPY docker-entrypoint /
RUN chmod +x /docker-entrypoint
ENTRYPOINT ["/docker-entrypoint"]
# The default command to run if no command is specified.
CMD gunicorn -b 0.0.0.0:8000 "buyercall.app:create_app()"