81 lines
No EOL
2.1 KiB
YAML
81 lines
No EOL
2.1 KiB
YAML
services:
|
|
traefik:
|
|
# The official v3 Traefik docker image
|
|
image: traefik:v3.3
|
|
container_name: traefik
|
|
# Enables the web UI and tells Traefik to listen to docker
|
|
command: --api.insecure=true --providers.docker
|
|
ports:
|
|
# The HTTP port
|
|
- '80:80'
|
|
# The Web UI (enabled by --api.insecure=true)
|
|
- '8080:8080'
|
|
volumes:
|
|
# So that Traefik can listen to the Docker events
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
gittype:
|
|
container_name: gittype
|
|
build:
|
|
context: ./
|
|
target: dev # DEV
|
|
# target: prod # PROD
|
|
environment:
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
develop:
|
|
watch:
|
|
- path: ./src
|
|
action: sync
|
|
target: /app/src
|
|
- path: ./static
|
|
action: sync
|
|
target: /app/static
|
|
- path: ./prisma
|
|
action: sync
|
|
target: /app/prisma
|
|
- path: ./package.json
|
|
action: rebuild
|
|
labels:
|
|
- 'traefik.http.routers.gittype.rule=PathPrefix(`/`)'
|
|
- 'traefik.http.services.gittype.loadbalancer.server.port=5173' # DEV
|
|
# - 'traefik.http.services.gittype.loadbalancer.server.port=3000' # PROD
|
|
depends_on:
|
|
- mysql
|
|
|
|
mysql:
|
|
image: mysql:9.3.0
|
|
container_name: mysql
|
|
volumes:
|
|
- mysql:/var/lib/mysql
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
|
|
MYSQL_DATABASE: gittype
|
|
ports:
|
|
- 3306:3306
|
|
|
|
# DEV ONLY
|
|
# phpmyadmin:
|
|
# image: phpmyadmin
|
|
# container_name: phpmyadmin
|
|
# environment:
|
|
# PMA_HOST: mysql
|
|
# PMA_USER: root
|
|
# PMA_PASSWORD: ${MYSQL_PASSWORD}
|
|
# labels:
|
|
# - 'traefik.http.routers.phpmyadmin.rule=Host(`db.localhost`)'
|
|
# - 'traefik.http.services.phpmyadmin.loadbalancer.server.port=80'
|
|
prisma-studio:
|
|
image: node:lts-alpine3.17
|
|
working_dir: /usr/src/app
|
|
volumes:
|
|
- .:/usr/src/app
|
|
command: npx prisma studio --port 5555 --browser none
|
|
env_file:
|
|
- .env
|
|
labels:
|
|
- 'traefik.http.routers.prisma.rule=Host(`prisma.localhost`)'
|
|
- 'traefik.http.services.prisma.loadbalancer.server.port=5555'
|
|
|
|
volumes:
|
|
mysql: |