Skip to content

Instantly share code, notes, and snippets.

@dudo
Last active December 4, 2020 09:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dudo/d93a7ed487186664f87e03a541d5aa65 to your computer and use it in GitHub Desktop.
Save dudo/d93a7ed487186664f87e03a541d5aa65 to your computer and use it in GitHub Desktop.
docker-compose example
# https://github.com/bkeepers/dotenv
COMPOSE_PROJECT_NAME=my_app
REDIS_URL=redis://redis:6379
PGHOST=db
PGUSER=postgres
PGPASSWORD=postgres
version: "3.8"
# https://docs.docker.com/docker-for-mac/osxfs/
services:
redis:
# screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
container_name: redis
image: redis:6
volumes:
- redis:/data
db:
env_file: .env
container_name: db
image: postgres:11
environment:
- POSTGRES_USER=$PGUSER
- POSTGRES_PASSWORD=$PGPASSWORD
volumes:
- postgres:/var/lib/postgresql/data
traefik:
image: traefik:v2.3
container_name: traefik
command:
#- --log.level=DEBUG
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
ports:
- 80:80
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
my_service:
env_file: .env
container_name: my-service
build: .
volumes:
- .:/usr/src/app:delegated
stdin_open: true
tty: true
environment:
- DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}/my_service_development
depends_on:
- db
- redis
ports:
- 1111:1111
labels:
- traefik.enable=true
- traefik.http.routers.my_service.rule=Host(`my_service.my_app.localhost`)
- traefik.http.routers.my_service.entrypoints=web
volumes:
postgres: {}
redis: {}
FROM whatever
LABEL maintainer="Brett Dudo <brett@dudo.io>"
# Install dependencies
RUN apt-get update -qq
ENV HOME /usr/src/app
WORKDIR $HOME
# Cleanup
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ENV LANG C.UTF-8
ADD . ./
EXPOSE 1111
# start app
USER 1000
ENTRYPOINT ["do"]
CMD ["the", "thing"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment