Skip to content

Instantly share code, notes, and snippets.

@sidneyspe
Created January 27, 2022 14:59
Show Gist options
  • Save sidneyspe/2ed548eb60e8d10b2464ff3be2b7fc79 to your computer and use it in GitHub Desktop.
Save sidneyspe/2ed548eb60e8d10b2464ff3be2b7fc79 to your computer and use it in GitHub Desktop.
Docker Compose for dev environment
version: "3"
services:
traefik:
container_name: traefik
image: traefik:latest
restart: always
command:
- --api.dashboard=true
- --api.insecure=true
- --providers.docker=true
- --entrypoints.web.address=:80
labels:
- traefik.http.routers.traefik.rule=Host(`traefik.${BASE_URL}`)
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
postgresql:
container_name: postgresql
image: postgres:14.1-alpine
restart: always
environment:
POSTGRES_PASSWORD: $POSTGRES_PASSWORD
ports:
- "5432:5432"
volumes:
- pg_data:/var/lib/postgresql/data
mongo:
container_name: mongo
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: $MONGO_USERNAME
MONGO_INITDB_ROOT_PASSWORD: $MONGO_PASSWORD
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
redis:
container_name: redis
image: redis
command: redis-server --requirepass $REDIS_PASSWORD
restart: always
ports:
- "6379:6379"
volumes:
- redis_data:/bitnami/redis/data
mysql:
container_name: mysql
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: $MYSQL_PASSWORD
MYSQL_DATABASE: $MYSQL_DATABASE
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
- /etc/localtime:/etc/localtime
pgadmin:
container_name: pgadmin4
image: dpage/pgadmin4
depends_on:
- postgresql
environment:
PGADMIN_DEFAULT_EMAIL: $PGADMIN_EMAIL
PGADMIN_DEFAULT_PASSWORD: $PGADMIN_PASSWORD
labels:
# - traefik.docker.network=web
- traefik.http.routers.pgadmin.entrypoints=web
- traefik.http.routers.pgadmin.rule=Host(`pgadmin.${BASE_URL}`)
# - traefik.http.services.pgadmin.loadbalancer.server.port=3000
# ports:
# - "5050:80"
volumes:
- pgadmin_data:/var/lib/pgadmin
volumes:
pg_data:
mongo_data:
redis_data:
mysql_data:
pgadmin_data:
@sidneyspe
Copy link
Author

.env.example:

TRAEFIK ENTRYPOINT

BASE_URL=localhost

POSTGRES

POSTGRES_PASSWORD=postgres

MONGODB

MONGO_USERNAME=root
MONGO_PASSWORD=root

REDIS

REDIS_PASSWORD=redis

MYSQL

MYSQL_PASSWORD=root
MYSQL_DATABASE=mysql

PGADMIN4

PGADMIN_EMAIL=[email protected]
PGADMIN_PASSWORD=postgres

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