You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.8 KiB
74 lines
1.8 KiB
# Docker Compose file for Vapor |
|
# |
|
# Install Docker on your system to run and test |
|
# your Vapor app in a production-like environment. |
|
# |
|
# Note: This file is intended for testing and does not |
|
# implement best practices for a production deployment. |
|
# |
|
# Learn more: https://docs.docker.com/compose/reference/ |
|
# |
|
# Build images: docker-compose build |
|
# Start app: docker-compose up app |
|
# Start database: docker-compose up db |
|
# Run migrations: docker-compose run migrate |
|
# Stop all: docker-compose down (add -v to wipe db) |
|
# |
|
version: '3.7' |
|
|
|
volumes: |
|
db_data: |
|
|
|
x-shared_environment: &shared_environment |
|
LOG_LEVEL: ${LOG_LEVEL:-debug} |
|
DATABASE_HOST: db |
|
DATABASE_NAME: vapor_database |
|
DATABASE_USERNAME: vapor_username |
|
DATABASE_PASSWORD: vapor_password |
|
|
|
services: |
|
app: |
|
image: website:latest |
|
build: |
|
context: . |
|
environment: |
|
<<: *shared_environment |
|
depends_on: |
|
- db |
|
ports: |
|
- '8080:8080' |
|
# user: '0' # uncomment to run as root for testing purposes even though Dockerfile defines 'vapor' user. |
|
command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"] |
|
migrate: |
|
image: website:latest |
|
build: |
|
context: . |
|
environment: |
|
<<: *shared_environment |
|
depends_on: |
|
- db |
|
command: ["migrate", "--yes"] |
|
deploy: |
|
replicas: 0 |
|
revert: |
|
image: website:latest |
|
build: |
|
context: . |
|
environment: |
|
<<: *shared_environment |
|
depends_on: |
|
- db |
|
command: ["migrate", "--revert", "--yes"] |
|
deploy: |
|
replicas: 0 |
|
db: |
|
image: mysql:8 |
|
volumes: |
|
- db_data:/var/lib/mysql |
|
environment: |
|
MYSQL_USER: vapor_username |
|
MYSQL_PASSWORD: vapor_password |
|
MYSQL_DATABASE: vapor_database |
|
MYSQL_RANDOM_ROOT_PASSWORD: 'yes' |
|
ports: |
|
- '3306:3306'
|
|
|