From 54ab6b023172609ce795894f533f61a6cd03c923 Mon Sep 17 00:00:00 2001 From: ludo Date: Mon, 5 Feb 2024 21:34:29 +0100 Subject: [PATCH] fix on docker --- docker/docker-compose.yml | 715 +++++++++++++------------- docker/meilisearch/docker-compose.yml | 25 + 2 files changed, 381 insertions(+), 359 deletions(-) create mode 100644 docker/meilisearch/docker-compose.yml diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 982d955f..5095b993 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -18,366 +18,363 @@ volumes: driver: ${VOLUMES_DRIVER} services: -### Workspace Utilities ################################## - workspace: - restart: always - build: - context: ./workspace - args: - - LARADOCK_PHP_VERSION=${PHP_VERSION} - - PUID=${PUID} - - PGID=${PGID} - - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} - - TZ=${TIMEZONE} - - INSTALL_DOCKER_CLIENT=${WORKSPACE_INSTALL_DOCKER_CLIENT} - - http_proxy - - https_proxy - - no_proxy - volumes: - - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - - ./php-worker/supervisord.d:/etc/supervisord.d - extra_hosts: - - "dockerhost:${DOCKER_HOST_IP}" - ports: - - "127.0.0.1:${WORKSPACE_SSH_PORT}:22" - tty: true - environment: - - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} - - DOCKER_HOST=tcp://docker-in-docker:2376 - - DOCKER_TLS_VERIFY=1 - - DOCKER_TLS_CERTDIR=/certs - - DOCKER_CERT_PATH=/certs/client - networks: - - frontend - - backend - links: - - docker-in-docker - -### PHP-FPM ############################################## - php-fpm: - restart: always - build: - context: ./php-fpm - args: - - CHANGE_SOURCE=${CHANGE_SOURCE} - - BASE_IMAGE_TAG_PREFIX=${PHP_FPM_BASE_IMAGE_TAG_PREFIX} - - LARADOCK_PHP_VERSION=${PHP_VERSION} - - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} - - INSTALL_ENCHANT=${PHP_FPM_INSTALL_ENCHANT} - - INSTALL_GMP=${PHP_FPM_INSTALL_GMP} - - INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2} - - INSTALL_XSL=${PHP_FPM_INSTALL_XSL} - - INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP} - - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} - - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} - - INSTALL_INTL=${PHP_FPM_INSTALL_INTL} - - INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT} - - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS} - - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK} - - INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR} - - INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME} - - INSTALL_APCU=${PHP_FPM_INSTALL_APCU} - - INSTALL_CACHETOOL=${PHP_FPM_INSTALL_CACHETOOL} - - INSTALL_YAML=${PHP_FPM_INSTALL_YAML} - - INSTALL_GETTEXT=${PHP_FPM_INSTALL_GETTEXT} - - INSTALL_ADDITIONAL_LOCALES=${PHP_FPM_INSTALL_ADDITIONAL_LOCALES} - - INSTALL_MYSQL_CLIENT=${PHP_FPM_INSTALL_MYSQL_CLIENT} - - INSTALL_PING=${PHP_FPM_INSTALL_PING} - - INSTALL_SSHPASS=${PHP_FPM_INSTALL_SSHPASS} - - INSTALL_MAILPARSE=${PHP_FPM_INSTALL_MAILPARSE} - - INSTALL_PCNTL=${PHP_FPM_INSTALL_PCNTL} - - ADDITIONAL_LOCALES=${PHP_FPM_ADDITIONAL_LOCALES} - - INSTALL_WKHTMLTOPDF=${PHP_FPM_INSTALL_WKHTMLTOPDF} - - DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL=${PHP_DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL} - - PUID=${PUID} - - PGID=${PGID} - - TZ=${TIMEZONE} - - IMAGEMAGICK_VERSION=${PHP_FPM_IMAGEMAGICK_VERSION} - - LOCALE=${PHP_FPM_DEFAULT_LOCALE} - - INSTALL_DOCKER_CLIENT=${PHP_FPM_INSTALL_DOCKER_CLIENT} - - http_proxy - - https_proxy - - no_proxy - volumes: - - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini - - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - ports: - - "127.0.0.1:${PHP_FPM_XDEBUG_PORT}:9003" - expose: - - "9000" - extra_hosts: - - "dockerhost:${DOCKER_HOST_IP}" - environment: - - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} - - DOCKER_HOST=tcp://docker-in-docker:2376 - - DOCKER_TLS_VERIFY=1 - - DOCKER_TLS_CERTDIR=/certs - - DOCKER_CERT_PATH=/certs/client - - FAKETIME=${PHP_FPM_FAKETIME} - depends_on: - - workspace - networks: - - backend - links: - - docker-in-docker - -### PHP Worker ############################################ - php-worker: - restart: always - build: - context: ./php-worker - args: - - CHANGE_SOURCE=${CHANGE_SOURCE} - - LARADOCK_PHP_VERSION=${PHP_VERSION} - - INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2} - - INSTALL_GD=${PHP_WORKER_INSTALL_GD} - - INSTALL_IMAGEMAGICK=${PHP_WORKER_INSTALL_IMAGEMAGICK} - - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} - - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} - - INSTALL_MEMCACHED=${PHP_WORKER_INSTALL_MEMCACHED} - - INSTALL_ZIP_ARCHIVE=${PHP_WORKER_INSTALL_ZIP_ARCHIVE} - - INSTALL_MYSQL_CLIENT=${PHP_WORKER_INSTALL_MYSQL_CLIENT} - - INSTALL_AMQP=${PHP_WORKER_INSTALL_AMQP} - - INSTALL_GHOSTSCRIPT=${PHP_WORKER_INSTALL_GHOSTSCRIPT} - - INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS} - - PUID=${PUID} - - PGID=${PGID} - - TZ=${TIMEZONE} - - IMAGEMAGICK_VERSION=${PHP_WORKER_IMAGEMAGICK_VERSION} - volumes: - - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - - ./php-worker/supervisord.d:/etc/supervisord.d - depends_on: - - workspace - extra_hosts: - - "dockerhost:${DOCKER_HOST_IP}" - networks: - - backend - -### NGINX Server ######################################### - nginx: - restart: always - build: - context: ./nginx - args: - - CHANGE_SOURCE=${CHANGE_SOURCE} - - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER} - - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT} - - PUID=${PUID} - - PGID=${PGID} - - TZ=${TIMEZONE} - - http_proxy - - https_proxy - - no_proxy - volumes: - - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - - ${DATA_PATH_HOST}/logs/nginx:/var/log/nginx - - ${NGINX_SITES_PATH}:/etc/nginx/sites-available - - ${NGINX_SSL_PATH}:/etc/nginx/ssl - ports: - - "${NGINX_HOST_HTTP_PORT}:80" - depends_on: - - php-fpm - networks: - - frontend - - backend - labels: - - traefik.port=80 - - traefik.backend=nginx - - traefik.frontend.rule=Host:opensem.docker.localhost - - traefik.http.routers.nginx.rule=Host(`opensem.docker.localhost`) - -### MySQL ################################################ - mysql: - restart: always - build: - context: ./mysql - args: - - MYSQL_VERSION=${MYSQL_VERSION} - environment: - - MYSQL_DATABASE=${MYSQL_DATABASE} - - MYSQL_USER=${MYSQL_USER} - - MYSQL_PASSWORD=${MYSQL_PASSWORD} - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + ### Workspace Utilities ################################## + workspace: + restart: always + build: + context: ./workspace + args: + - LARADOCK_PHP_VERSION=${PHP_VERSION} + - PUID=${PUID} + - PGID=${PGID} + - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} - TZ=${TIMEZONE} - volumes: - - ${DATA_PATH_HOST}/mysql:/var/lib/mysql - - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d - ports: - - "127.0.0.1:${MYSQL_PORT}:3306" - networks: - - backend - -### MySQL ################################################ - mysql-slave1: - build: - context: ./mysql-slave1 - args: - - MYSQL_VERSION=${MYSQL_VERSION} - environment: - - MYSQL_DATABASE=${MYSQL_DATABASE} - - MYSQL_USER=${MYSQL_USER} - - MYSQL_PASSWORD=${MYSQL_PASSWORD} - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - TZ=${TIMEZONE} - volumes: - - ${DATA_PATH_HOST}/mysql-slave1:/var/lib/mysql - - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d - ports: - - "3306:3306" - networks: - - backend - -### Redis ################################################ - redis: - restart: always - build: ./redis - volumes: - - ${DATA_PATH_HOST}/redis:/data - command: redis-server --requirepass ${REDIS_PASSWORD} - ports: - - "127.0.0.1:${REDIS_PORT}:6379" - networks: - - backend - -### SMTP ################################################ - smtp: - restart: always - build: ./smtp - ports: - - "${SMTP_PORT}:25" - networks: - - frontend - - backend - tty: true - -### phpMyAdmin ########################################### - phpmyadmin: - build: ./phpmyadmin - environment: - - PMA_ARBITRARY=1 - - MYSQL_USER=${PMA_USER} - - MYSQL_PASSWORD=${PMA_PASSWORD} - - MYSQL_ROOT_PASSWORD=${PMA_ROOT_PASSWORD} - - MAX_EXECUTION_TIME=${PMA_MAX_EXECUTION_TIME} - - MEMORY_LIMIT=${PMA_MEMORY_LIMIT} - - UPLOAD_LIMIT=${PMA_UPLOAD_LIMIT} - ports: - - "127.0.0.1:${PMA_PORT}:80" - depends_on: - - "${PMA_DB_ENGINE}" - networks: - - frontend - - backend - -### Certbot ######################################### - certbot: - build: - context: ./certbot - volumes: - - ./data/certbot/certs/:/var/certs - - ./certbot/letsencrypt/:/var/www/letsencrypt - environment: - - CN="jardinenvie.com" - - EMAIL="ludo@huma.net" - networks: - - frontend - -### Docker-in-Docker ################################################ - docker-in-docker: - image: docker:19.03-dind - environment: - DOCKER_TLS_SAN: DNS:docker-in-docker - privileged: true - volumes: - - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - - docker-in-docker:/certs/client - expose: - - 2375 - networks: - - backend - -### Soketi ########################################### - soketi: - restart: unless-stopped - image: 'quay.io/soketi/soketi:1.0-16-debian' - ports: - - '127.0.0.1:${SOKETI_PORT:-6001}:6001' - - '127.0.0.1:${SOKETI_METRICS_SERVER_PORT:-9601}:9601' - environment: - - SOKETI_DEBUG=1 - - SOKETI_DEFAULT_APP_ID=${PUSHER_APP_ID} - - SOKETI_DEFAULT_APP_KEY=${PUSHER_APP_KEY} - - SOKETI_DEFAULT_APP_SECRET=${PUSHER_APP_SECRET} - - SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=true - - DEFAULT_APP_USER_AUTHENTICATION=true - extra_hosts: - - "dockerhost:${DOCKER_HOST_IP}" - networks: - - backend - - frontend - links: - - docker-in-docker - -### Laravel Horizon ############################################ - laravel-horizon: - build: - context: ./laravel-horizon - args: - - CHANGE_SOURCE=${CHANGE_SOURCE} - - LARADOCK_PHP_VERSION=${PHP_VERSION} - - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} - - INSTALL_GD=${LARAVEL_HORIZON_INSTALL_GD} - - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} - - INSTALL_GNUPG=${LARAVEL_HORIZON_INSTALL_GNUPG} - - INSTALL_LDAP=${LARAVEL_HORIZON_INSTALL_LDAP} - - INSTALL_IMAGEMAGICK=${LARAVEL_HORIZON_INSTALL_IMAGEMAGICK} - - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - - INSTALL_ZIP_ARCHIVE=${LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE} - - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} - - INSTALL_YAML=${LARAVEL_HORIZON_INSTALL_YAML} - - INSTALL_CASSANDRA=${LARAVEL_HORIZON_INSTALL_CASSANDRA} - - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} - - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} - - INSTALL_AUDIOWAVEFORM=${LARAVEL_HORIZON_INSTALL_AUDIOWAVEFORM} - - PUID=${PUID} - - PGID=${PGID} - - IMAGEMAGICK_VERSION=${LARAVEL_HORIZON_IMAGEMAGICK_VERSION} - volumes: - - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - - ./laravel-horizon/supervisord.d:/etc/supervisord.d - depends_on: - - workspace - extra_hosts: - - "dockerhost:${DOCKER_HOST_IP}" - networks: - - backend - -### Meilisearch - meilisearch: - container_name: meilisearch - image: getmeili/meilisearch:latest - environment: + - INSTALL_DOCKER_CLIENT=${WORKSPACE_INSTALL_DOCKER_CLIENT} - http_proxy - https_proxy - - MEILI_MASTER_KEY=${MEILI_MASTER_KEY:-masterKey} - # - MEILI_NO_ANALYTICS=${MEILI_NO_ANALYTICS:-true} - # - MEILI_ENV=${MEILI_ENV:-development} - # - MEILI_LOG_LEVEL - # - MEILI_DB_PATH=${MEILI_DB_PATH:-/data.ms} - ports: - - 127.0.0.1:${MEILI_PORT:-7700}:7700 - networks: - - backend - volumes: - - ${DATA_PATH_HOST}/meili_data:/meili_data - restart: unless-stopped + - no_proxy + volumes: + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} + - ./php-worker/supervisord.d:/etc/supervisord.d + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + ports: + - "${WORKSPACE_SSH_PORT}:22" + tty: true + environment: + - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} + - DOCKER_HOST=tcp://docker-in-docker:2376 + - DOCKER_TLS_VERIFY=1 + - DOCKER_TLS_CERTDIR=/certs + - DOCKER_CERT_PATH=/certs/client + networks: + - frontend + - backend + links: + - docker-in-docker - \ No newline at end of file + ### PHP-FPM ############################################## + php-fpm: + restart: always + build: + context: ./php-fpm + args: + - CHANGE_SOURCE=${CHANGE_SOURCE} + - BASE_IMAGE_TAG_PREFIX=${PHP_FPM_BASE_IMAGE_TAG_PREFIX} + - LARADOCK_PHP_VERSION=${PHP_VERSION} + - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} + - INSTALL_ENCHANT=${PHP_FPM_INSTALL_ENCHANT} + - INSTALL_GMP=${PHP_FPM_INSTALL_GMP} + - INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2} + - INSTALL_XSL=${PHP_FPM_INSTALL_XSL} + - INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP} + - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} + - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} + - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} + - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} + - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} + - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} + - INSTALL_INTL=${PHP_FPM_INSTALL_INTL} + - INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT} + - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS} + - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK} + - INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR} + - INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME} + - INSTALL_APCU=${PHP_FPM_INSTALL_APCU} + - INSTALL_CACHETOOL=${PHP_FPM_INSTALL_CACHETOOL} + - INSTALL_YAML=${PHP_FPM_INSTALL_YAML} + - INSTALL_GETTEXT=${PHP_FPM_INSTALL_GETTEXT} + - INSTALL_ADDITIONAL_LOCALES=${PHP_FPM_INSTALL_ADDITIONAL_LOCALES} + - INSTALL_MYSQL_CLIENT=${PHP_FPM_INSTALL_MYSQL_CLIENT} + - INSTALL_PING=${PHP_FPM_INSTALL_PING} + - INSTALL_SSHPASS=${PHP_FPM_INSTALL_SSHPASS} + - INSTALL_MAILPARSE=${PHP_FPM_INSTALL_MAILPARSE} + - INSTALL_PCNTL=${PHP_FPM_INSTALL_PCNTL} + - ADDITIONAL_LOCALES=${PHP_FPM_ADDITIONAL_LOCALES} + - INSTALL_WKHTMLTOPDF=${PHP_FPM_INSTALL_WKHTMLTOPDF} + - DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL=${PHP_DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL} + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TIMEZONE} + - IMAGEMAGICK_VERSION=${PHP_FPM_IMAGEMAGICK_VERSION} + - LOCALE=${PHP_FPM_DEFAULT_LOCALE} + - INSTALL_DOCKER_CLIENT=${PHP_FPM_INSTALL_DOCKER_CLIENT} + - http_proxy + - https_proxy + - no_proxy + volumes: + - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} + ports: + - "${PHP_FPM_XDEBUG_PORT}:9003" + expose: + - "9000" + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + environment: + - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} + - DOCKER_HOST=tcp://docker-in-docker:2376 + - DOCKER_TLS_VERIFY=1 + - DOCKER_TLS_CERTDIR=/certs + - DOCKER_CERT_PATH=/certs/client + - FAKETIME=${PHP_FPM_FAKETIME} + depends_on: + - workspace + networks: + - backend + links: + - docker-in-docker + + ### PHP Worker ############################################ + php-worker: + restart: always + build: + context: ./php-worker + args: + - CHANGE_SOURCE=${CHANGE_SOURCE} + - LARADOCK_PHP_VERSION=${PHP_VERSION} + - INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2} + - INSTALL_GD=${PHP_WORKER_INSTALL_GD} + - INSTALL_IMAGEMAGICK=${PHP_WORKER_INSTALL_IMAGEMAGICK} + - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} + - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} + - INSTALL_MEMCACHED=${PHP_WORKER_INSTALL_MEMCACHED} + - INSTALL_ZIP_ARCHIVE=${PHP_WORKER_INSTALL_ZIP_ARCHIVE} + - INSTALL_MYSQL_CLIENT=${PHP_WORKER_INSTALL_MYSQL_CLIENT} + - INSTALL_AMQP=${PHP_WORKER_INSTALL_AMQP} + - INSTALL_GHOSTSCRIPT=${PHP_WORKER_INSTALL_GHOSTSCRIPT} + - INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS} + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TIMEZONE} + - IMAGEMAGICK_VERSION=${PHP_WORKER_IMAGEMAGICK_VERSION} + volumes: + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} + - ./php-worker/supervisord.d:/etc/supervisord.d + depends_on: + - workspace + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + networks: + - backend + + ### NGINX Server ######################################### + nginx: + restart: always + build: + context: ./nginx + args: + - CHANGE_SOURCE=${CHANGE_SOURCE} + - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER} + - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT} + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TIMEZONE} + - http_proxy + - https_proxy + - no_proxy + volumes: + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} + - ${DATA_PATH_HOST}/logs/nginx:/var/log/nginx + - ${NGINX_SITES_PATH}:/etc/nginx/sites-available + - ${NGINX_SSL_PATH}:/etc/nginx/ssl + ports: + - "127.0.0.1:${NGINX_HOST_HTTP_PORT}:80" + depends_on: + - php-fpm + networks: + - frontend + - backend + labels: + - traefik.port=80 + - traefik.backend=nginx + - traefik.frontend.rule=Host:opensem.docker.localhost + - traefik.http.routers.nginx.rule=Host(`opensem.docker.localhost`) + + ### MySQL ################################################ + mysql: + restart: always + build: + context: ./mysql + args: + - MYSQL_VERSION=${MYSQL_VERSION} + environment: + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - TZ=${TIMEZONE} + volumes: + - ${DATA_PATH_HOST}/mysql:/var/lib/mysql + - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d + ports: + - "${MYSQL_PORT}:3306" + networks: + - backend + + ### MySQL ################################################ + mysql-slave1: + build: + context: ./mysql-slave1 + args: + - MYSQL_VERSION=${MYSQL_VERSION} + environment: + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - TZ=${TIMEZONE} + volumes: + - ${DATA_PATH_HOST}/mysql-slave1:/var/lib/mysql + - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d + ports: + - "3306:3306" + networks: + - backend + + ### Redis ################################################ + redis: + restart: always + build: ./redis + volumes: + - ${DATA_PATH_HOST}/redis:/data + command: redis-server --requirepass ${REDIS_PASSWORD} + ports: + - "${REDIS_PORT}:6379" + networks: + - backend + + ### SMTP ################################################ + smtp: + restart: always + build: ./smtp + ports: + - "${SMTP_PORT}:25" + networks: + - frontend + - backend + tty: true + + ### phpMyAdmin ########################################### + phpmyadmin: + build: ./phpmyadmin + environment: + - PMA_ARBITRARY=1 + - MYSQL_USER=${PMA_USER} + - MYSQL_PASSWORD=${PMA_PASSWORD} + - MYSQL_ROOT_PASSWORD=${PMA_ROOT_PASSWORD} + - MAX_EXECUTION_TIME=${PMA_MAX_EXECUTION_TIME} + - MEMORY_LIMIT=${PMA_MEMORY_LIMIT} + - UPLOAD_LIMIT=${PMA_UPLOAD_LIMIT} + ports: + - "${PMA_PORT}:80" + depends_on: + - "${PMA_DB_ENGINE}" + networks: + - frontend + - backend + + ### Certbot ######################################### + certbot: + build: + context: ./certbot + volumes: + - ./data/certbot/certs/:/var/certs + - ./certbot/letsencrypt/:/var/www/letsencrypt + environment: + - CN="jardinenvie.com" + - EMAIL="ludo@huma.net" + networks: + - frontend + + ### Docker-in-Docker ################################################ + docker-in-docker: + image: docker:19.03-dind + environment: + DOCKER_TLS_SAN: DNS:docker-in-docker + privileged: true + volumes: + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} + - docker-in-docker:/certs/client + expose: + - 2375 + networks: + - backend + + ### Soketi ########################################### + soketi: + restart: unless-stopped + image: 'quay.io/soketi/soketi:1.0-16-debian' + ports: + - '${SOKETI_PORT:-6001}:6001' + - '${SOKETI_METRICS_SERVER_PORT:-9601}:9601' + environment: + - SOKETI_DEBUG=1 + - SOKETI_DEFAULT_APP_ID=${PUSHER_APP_ID} + - SOKETI_DEFAULT_APP_KEY=${PUSHER_APP_KEY} + - SOKETI_DEFAULT_APP_SECRET=${PUSHER_APP_SECRET} + - SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=true + - DEFAULT_APP_USER_AUTHENTICATION=true + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + networks: + - backend + - frontend + links: + - docker-in-docker + + ### Laravel Horizon ############################################ + laravel-horizon: + build: + context: ./laravel-horizon + args: + - CHANGE_SOURCE=${CHANGE_SOURCE} + - LARADOCK_PHP_VERSION=${PHP_VERSION} + - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} + - INSTALL_GD=${LARAVEL_HORIZON_INSTALL_GD} + - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} + - INSTALL_GNUPG=${LARAVEL_HORIZON_INSTALL_GNUPG} + - INSTALL_LDAP=${LARAVEL_HORIZON_INSTALL_LDAP} + - INSTALL_IMAGEMAGICK=${LARAVEL_HORIZON_INSTALL_IMAGEMAGICK} + - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} + - INSTALL_ZIP_ARCHIVE=${LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE} + - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} + - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} + - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} + - INSTALL_YAML=${LARAVEL_HORIZON_INSTALL_YAML} + - INSTALL_CASSANDRA=${LARAVEL_HORIZON_INSTALL_CASSANDRA} + - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} + - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} + - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} + - INSTALL_AUDIOWAVEFORM=${LARAVEL_HORIZON_INSTALL_AUDIOWAVEFORM} + - PUID=${PUID} + - PGID=${PGID} + - IMAGEMAGICK_VERSION=${LARAVEL_HORIZON_IMAGEMAGICK_VERSION} + volumes: + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} + - ./laravel-horizon/supervisord.d:/etc/supervisord.d + depends_on: + - workspace + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + networks: + - backend + + ### Meilisearch + meilisearch: + image: getmeili/meilisearch:latest + environment: + - http_proxy + - https_proxy + - MEILI_MASTER_KEY=${MEILI_MASTER_KEY:-masterKey} + # - MEILI_NO_ANALYTICS=${MEILI_NO_ANALYTICS:-true} + # - MEILI_ENV=${MEILI_ENV:-development} + # - MEILI_LOG_LEVEL + # - MEILI_DB_PATH=${MEILI_DB_PATH:-/data.ms} + ports: + - ${MEILI_PORT:-7700}:7700 + networks: + - backend + volumes: + - ${DATA_PATH_HOST}/meili_data:/meili_data + restart: unless-stopped diff --git a/docker/meilisearch/docker-compose.yml b/docker/meilisearch/docker-compose.yml new file mode 100644 index 00000000..84c6c342 --- /dev/null +++ b/docker/meilisearch/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3' + +services: + meilisearch: + container_name: meilisearch + image: getmeili/meilisearch:v0.25.2 + environment: + - http_proxy + - https_proxy + - MEILI_MASTER_KEY=${MEILI_MASTER_KEY:-masterKey} + - MEILI_NO_ANALYTICS=${MEILI_NO_ANALYTICS:-true} + - MEILI_ENV=${MEILI_ENV:-development} + - MEILI_LOG_LEVEL + - MEILI_DB_PATH=${MEILI_DB_PATH:-/data.ms} + ports: + - ${MEILI_PORT:-7700}:7700 + networks: + - meilisearch + volumes: + - ./data.ms:/data.ms + restart: unless-stopped + +networks: + meilisearch: + driver: bridge \ No newline at end of file