Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@sinanm89
Last active May 8, 2019 14:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sinanm89/870d3b126f8b8e6ce8d4a8d21ff6fee6 to your computer and use it in GitHub Desktop.
Save sinanm89/870d3b126f8b8e6ce8d4a8d21ff6fee6 to your computer and use it in GitHub Desktop.
# TODO: the ports should be dynamically set from the data_service.env file
version: '3'
services:
my_app_service:
container_name: my_app
restart: "no"
build:
context: .
env_file:
- ./config/my_app.env
ports:
- 8003:8003
network_mode: "host"
depends_on:
- "db"
db:
container_name: my_db
restart: "no"
build:
context: .
dockerfile: ./db/migrations/Dockerfile
ports:
- 5432:5432
env_file:
- ./config/my_db.env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD:-test}
POSTGRES_USER: ${DB_USER:-postgres}
POSTGRES_DB: ${DB_NAME:-mydb}
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
@sinanm89
Copy link
Author

sinanm89 commented May 1, 2019

FROM python:3.7.2-slim-stretch

RUN apt-get update  \
    && apt-get dist-upgrade -y \
    && apt install -y make \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Env vars
ENV USER=snn \
    HOME=/home/snn \
    TERM=xterm-256color \
    PROJECT_PATH=/opt/snn/my_app \
    APP_PATH=/opt/snn/my_app \
    OUTPUT_PATH=/opt/snn/my_app/output \
    PYTHONPATH=${PYTHONPATH}:/opt/snn/my_app

RUN apt-get update \
    && apt-get install -y gcc libpq-dev virtualenv

# Create necessary directories
RUN mkdir -p $APP_PATH
RUN mkdir -p $OUTPUT_PATH

# Move files into image directories
COPY ./my_app $APP_PATH
COPY ./build $PROJECT_PATH/build
COPY ./scripts/build $PROJECT_PATH/scripts/build
COPY Makefile $PROJECT_PATH

# Install libs
WORKDIR $PROJECT_PATH
RUN touch $PROJECT_PATH/.dockerenv
RUN make build-in-docker

# Setup user
RUN useradd -ms /bin/bash -G sudo $USER
RUN chown -R $USER:$USER $PROJECT_PATH
RUN chown -R $USER:$USER $HOME
RUN chown -R $USER:$USER $OUTPUT_PATH
RUN chmod -R uga+rw $PROJECT_PATH
RUN chmod -R uga+rw $OUTPUT_PATH
USER snn

# Finish
WORKDIR $PROJECT_PATH

# Debug
#CMD ["/bin/bash"]

CMD ["make", "run"]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment