Files
Phraseanet/docker-compose.yml
2021-03-05 20:15:29 +01:00

244 lines
6.7 KiB
YAML

version: "3.4"
networks:
internal:
ipam:
config:
- subnet: $PHRASEANET_SUBNET_IPS
services:
gateway:
build:
context: .
target: phraseanet-nginx
args:
- SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY}
- PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS}
image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-nginx:$PHRASEANET_DOCKER_TAG
restart: on-failure
volumes:
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_PLUGINS_DIR}:/var/alchemy/Phraseanet/www/plugins:rw
depends_on:
- phraseanet
environment:
- MAX_BODY_SIZE
- GATEWAY_SEND_TIMEOUT
- GATEWAY_PROXY_TIMEOUT
- GATEWAY_FASTCGI_TIMEOUT
ports:
- ${PHRASEANET_APP_PORT}:80
networks:
- internal
phraseanet:
build:
context: .
target: phraseanet-fpm
args:
- SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY}
- PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS}
image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-fpm:$PHRASEANET_DOCKER_TAG
restart: on-failure
depends_on:
- redis
- rabbitmq
- elasticsearch
environment:
- PHRASEANET_INSTALL
- PHRASEANET_SETUP
- PHRASEANET_UPGRADE
- PHRASEANET_PROJECT_NAME
- PHRASEANET_TRUSTED_PROXIES
- PHRASEANET_DEBUG_ALLOWED_IP
- MAX_BODY_SIZE
- MAX_INPUT_VARS
- MAX_EXECUTION_TIME
- MAX_INPUT_TIME
- REQUEST_TERMINATE_TIMEOUT
- OPCACHE_ENABLED
- SESSION_CACHE_LIMITER
- PHP_LOG_LEVEL
- PHRASEANET_ADMIN_ACCOUNT_ID
- PHRASEANET_ADMIN_ACCOUNT_EMAIL
- PHRASEANET_ADMIN_ACCOUNT_PASSWORD
- PHRASEANET_DB_HOST
- PHRASEANET_DB_PORT
- PHRASEANET_DB_USER
- PHRASEANET_DB_PASSWORD
- INSTALL_DB_TEMPLATE
- INSTALL_APPBOX
- INSTALL_DATABOX
- PHRASEANET_SERVER_NAME
- PHRASEANET_AVAILABLE_LANGUAGE
- PHRASEANET_DEFAULT_LANGUAGE
- PHRASEANET_RABBITMQ_USER=$RABBITMQ_DEFAULT_USER
- PHRASEANET_RABBITMQ_PASSWORD=$RABBITMQ_DEFAULT_PASS
- PHRASEANET_EMITTER_EMAIL
- PHRASEANET_MAIL_OBJECT_PREFIX
- PHRASEANET_SMTP_ENABLED
- PHRASEANET_SMTP_HOST
- PHRASEANET_SMTP_PORT
- PHRASEANET_SMTP_AUTH_ENABLED
- PHRASEANET_SMTP_SECURE_MODE
- PHRASEANET_SMTP_USER
- PHRASEANET_SMTP_PASSWORD
- PHRASEANET_DOWNLOAD_DIR
- PHRASEANET_LAZARET_DIR
- PHRASEANET_CAPTION_DIR
- PHRASEANET_WORKER_TMP
- PHRASEANET_FFMPEG_TIMEOUT
- PHRASEANET_FFPROBE_TIMEOUT
- PHRASEANET_GS_TIMEOUT
- PHRASEANET_MP4BOX_TIMEOUT
- PHRASEANET_SWFTOOLS_TIMEOUT
- PHRASEANET_UNOCON_TIMEOUT
- PHRASEANET_EXIFTOOL_TIMEOUT
- PHRASEANET_API_ENABLED
- PHRASEANET_API_SSL
- PHRASEANET_API_AUTH_TOKEN_HEADER_ONLY
- ENV_SET_PHRASEANET_PROJET_NAME
- LC_MESSAGES=C.UTF-8
- LC_COLLATE=C.UTF-8
- LC_IDENTIFICATION=C.UTF-8
- LANG=C.UTF-8
- LC_MEASUREMENT=C.UTF-8
- LC_CTYPE=C.UTF-8
- LC_TIME=C.UTF-8
- LC_NAME=C.UTF-8
- NEWRELIC_ENABLED
- NEWRELIC_LICENSE_KEY
- NEWRELIC_APP_NAME
- BLACKFIRE_ENABLED
- BLACKFIRE_SERVER_ID
- BLACKFIRE_SERVER_TOKEN
volumes:
- ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw
- ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_PLUGINS_DIR}:/var/alchemy/Phraseanet/www/plugins:rw
- ${PHRASEANET_CACHE_DIR}:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
networks:
- internal
worker:
build:
context: .
target: phraseanet-worker
args:
- SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY}
- PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS}
image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-worker:$PHRASEANET_DOCKER_TAG
restart: on-failure
depends_on:
- redis
- rabbitmq
- elasticsearch
- phraseanet
environment:
- OPCACHE_ENABLED
- SESSION_CACHE_LIMITER
- PHP_LOG_LEVEL
- LC_MESSAGES=C.UTF-8
- LC_COLLATE=C.UTF-8
- LC_IDENTIFICATION=C.UTF-8
- LANG=C.UTF-8
- LC_MEASUREMENT=C.UTF-8
- LC_CTYPE=C.UTF-8
- LC_TIME=C.UTF-8
- LC_NAME=C.UTF-8
- PHRASEANET_EXPLODE_WORKER
- PHRASEANET_WORKER_assetsIngest
- PHRASEANET_WORKER_createRecord
- PHRASEANET_WORKER_deleteRecord
- PHRASEANET_WORKER_exportMail
- PHRASEANET_WORKER_exposeUpload
- PHRASEANET_WORKER_ftp
- PHRASEANET_WORKER_mainQueue
- PHRASEANET_WORKER_populateIndex
- PHRASEANET_WORKER_pullAssets
- PHRASEANET_WORKER_recordEdit
- PHRASEANET_WORKER_subdefCreation
- PHRASEANET_WORKER_subtitle
- PHRASEANET_WORKER_validationReminder
- PHRASEANET_WORKER_webhook
- PHRASEANET_WORKER_writeMetadatas
- IMAGEMAGICK_POLICY_VERSION
- IMAGEMAGICK_POLICY_WIDTH
- IMAGEMAGICK_POLICY_HEIGHT
- IMAGEMAGICK_POLICY_MAP
- IMAGEMAGICK_POLICY_MEMORY
- IMAGEMAGICK_POLICY_AREA
- IMAGEMAGICK_POLICY_DISK
- IMAGEMAGICK_POLICY_TEMPORARY_PATH
- NEWRELIC_ENABLED
- NEWRELIC_LICENSE_KEY
- NEWRELIC_APP_NAME
- BLACKFIRE_ENABLED
- BLACKFIRE_SERVER_ID
- BLACKFIRE_SERVER_TOKEN
volumes:
- ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw
- ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_CACHE_DIR}:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
networks:
- internal
rabbitmq:
image: rabbitmq:3-management
restart: on-failure
environment:
- RABBITMQ_DEFAULT_USER
- RABBITMQ_DEFAULT_PASS
networks:
- internal
redis:
image: redis
restart: on-failure
networks:
- internal
elasticsearch:
image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-elasticsearch:$PHRASEANET_DOCKER_TAG
build: ./docker/elasticsearch
restart: on-failure
volumes:
- ${PHRASEANET_ELASTICSEARCH_DIR}:/usr/share/elasticsearch/data
networks:
- internal
volumes:
config_vol:
driver: local
data_vol:
driver: local
tmp_vol:
driver: local
db_vol:
driver: local
elasticsearch_vol:
driver: local
thumbnails_vol:
driver: local
custom_vol:
driver: local
plugins_dir:
driver: local
cache_vol:
driver: local
# to be replacer by stdout/stderr
logs_vol:
driver: local
dev_vol:
driver: local