# doc : https://docs.docker.com/compose/compose-file/compose-versioning/ # version : https://docs.docker.com/compose/compose-file/compose-versioning/ # version to download : https://github.com/docker/compose/releases/ # had to remove the apt version because it was not up to date (sudo apt remove docker-compose) # then install as recommended : curl -SL https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose # or (neat) : https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose version: "3.8" services: # --------------------------------- nginx: restart: on-failure networks: - inception ports: - "${WP_PORT}:443" volumes: - wp_volume:${WP_VOLUME_DIR} - wp_plugins:${WP_VOLUME_PLUGINS} build: context: ./requirements/nginx args: - WP_URL=${WP_URL} - SERVER_MAX_UPLOAD_SIZE=${SERVER_MAX_UPLOAD_SIZE} - WP_VOLUME_DIR=${WP_VOLUME_DIR} - WP_VOLUME_PLUGINS=${WP_VOLUME_PLUGINS} - NG_CERTS_DIR=${NG_CERTS_DIR} image: nginx container_name: nginx_container depends_on: wordpress: condition: service_started # --------------------------------- mariadb: restart: on-failure env_file: .env networks: - inception volumes: - db_volume:${DB_VOLUME_DIR} build: context: ./requirements/mariadb args: - DB_HOST=${DB_HOST} - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PSWD=${DB_PSWD} - DB_VOLUME_DIR=${DB_VOLUME_DIR} healthcheck: test: mariadb -h ${DB_HOST} -u ${DB_USER} -p"${DB_PSWD}" -e exit 2> /dev/null interval: 1s timeout: 10s retries: 10 image: mariadb container_name: mariadb_container # --------------------------------- wordpress: restart: on-failure env_file: .env networks: - inception volumes: - wp_volume:${WP_VOLUME_DIR} - wp_plugins:${WP_VOLUME_PLUGINS} build: context: ./requirements/wordpress args: - WP_VOLUME_DIR=${WP_VOLUME_DIR} - WP_VOLUME_PLUGINS=${WP_VOLUME_PLUGINS} - SERVER_MAX_UPLOAD_SIZE=${SERVER_MAX_UPLOAD_SIZE} - SERVER_EXECUTION_TIME=${SERVER_EXECUTION_TIME} image: wordpress container_name: wordpress_container depends_on: mariadb: condition: service_healthy # specify path to named volumes : https://docs.docker.com/compose/compose-file/compose-file-v3/#volume-configuration-reference # local driver options : https://stackoverflow.com/questions/62232676/docker-local-volume-driver-options volumes: db_volume: driver: local driver_opts: type: none o: "bind" device: ${HOST_VOLUME_DB} wp_volume: driver: local driver_opts: type: none o: "bind" device: ${HOST_VOLUME_WP} wp_plugins: driver: local driver_opts: type: none o: "bind" device: ${HOST_VOLUME_PLUGINS} # error_logs: # driver: local # driver_opts: # type: none # o: "bind" # device: ${HOST_VOLUME_ERROR_LOGS} networks: inception: