kiwitcms/Kiwi

View on GitHub
docker-compose.with-secrets

Summary

Maintainability
Test Coverage
version: '3'

services:
    db:
        container_name: kiwi_db
        image: mariadb:latest
        command:
            --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
        volumes:
            - db_data:/var/lib/mysql
        restart: always
        environment:
            # see "Docker Secrets" section at https://hub.docker.com/_/mysql
            MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db-root-password
            MYSQL_DATABASE_FILE: /run/secrets/db-name
            MYSQL_USER_FILE: /run/secrets/db-user
            MYSQL_PASSWORD_FILE: /run/secrets/db-password
        secrets:
          - db-root-password
          - db-name
          - db-user
          - db-password

    web:
        container_name: kiwi_web
        depends_on:
            - db
        restart: always
        image: kiwitcms/kiwi:latest
        ports:
            - 80:8080
            - 443:8443
        volumes:
            - uploads:/Kiwi/uploads:Z
            - ./tests/init-docker-secrets/:/Kiwi/secrets/:Z
        environment:
            # all of these support being defined as docker secrets
            KIWI_DB_HOST: db
            KIWI_DB_PORT: 3306
            KIWI_DB_NAME: /run/secrets/db-name
            KIWI_DB_USER: /run/secrets/db-user
            KIWI_DB_PASSWORD: /Kiwi/secrets/db-password.txt
            # or as regular files mounted inside the container
        secrets:
          - db-name
          - db-user
          - db-password
        cap_drop:
          - ALL

secrets:
   db-name:
     file: tests/init-docker-secrets/db-name.txt
   db-user:
     file: tests/init-docker-secrets/db-user.txt
   db-password:
     file: tests/init-docker-secrets/db-password.txt
   db-root-password:
     file: tests/init-docker-secrets/db-root-password.txt

volumes:
    db_data:
    uploads: