Skip to content

Instantly share code, notes, and snippets.

@Eventyret
Created July 18, 2024 09:20
Show Gist options
  • Save Eventyret/934842cb6f0cee675f2b007eb664c2c7 to your computer and use it in GitHub Desktop.
Save Eventyret/934842cb6f0cee675f2b007eb664c2c7 to your computer and use it in GitHub Desktop.
docker-compose file used with strapi-dockerize-tool
version: '3'
services:
{{name}}:
container_name: {{name}}
build: .
image: {{name}}:latest
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: {{name | downcase}}DB
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PORT: ${DATABASE_PORT}
JWT_SECRET: ${JWT_SECRET}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
NODE_ENV: ${NODE_ENV}
volumes:
- ./config:/opt/app/config
- ./src:/opt/app/src
- ./package.json:/opt/package.json
{%- if packageManager == "npm" %}
- ./package-lock.json:/opt/package-lock.json
{% else %}
- ./yarn.lock:/opt/yarn.lock
{% endif %}
- ./.env:/opt/app/.env
- ./public/uploads:/opt/app/public/uploads
ports:
- '1337:1337'
networks:
- {{name}}
depends_on:
- {{name}}DB
{{name | downcase}}DB:
container_name: {{name | downcase}}DB
platform: linux/amd64 #for platform error on Apple M1 chips
restart: unless-stopped
env_file: .env
{%- if dbtype == "postgresql" %}
image: postgres:14.5-alpine
environment:
POSTGRES_USER: ${DATABASE_USERNAME}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME}
volumes:
- {{name | downcase}}-data:/var/lib/postgresql/data/ #using a volume
#- ./data:/var/lib/postgresql/data/ # if you want to use a bind folder
{% else %}
{%- if dbtype == "mysql" %}
image: mysql:latest
command: "--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --default-authentication-plugin=mysql_native_password"
{%- else%}
image: mariadb:latest
{%- endif %}
environment:
MYSQL_USER: ${DATABASE_USERNAME}
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_DATABASE: ${DATABASE_NAME}
MYSQL_ROOT_HOST: '%'
volumes:
- {{name | downcase}}-data:/var/lib/mysql
#- ./data:/var/lib/postgresql/data/ # if you want to use a bind folder
{%- endif %}
ports:
- '{{dbport}}:{{dbport}}'
networks:
- {{name | downcase}}
{{name | downcase}}Adminer:
container_name: {{name | downcase}}Adminer
image: adminer
restart: unless-stopped
ports:
- '9090:8080'
environment:
- ADMINER_DEFAULT_SERVER={{name | downcase}}DB
networks:
- {{name | downcase}}
depends_on:
- {{name}}DB
volumes:
{{name | downcase}}-data:
networks:
{{name}}:
name: {{name | capitalize}}
driver: bridge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment