docker-compose.yml
version: "3.3"
services:
router:
image: nginx:1-alpine
container_name: autowp_test_router
restart: always
volumes:
- ./router.conf:/etc/nginx/nginx.conf:ro
- ./localhost.crt:/localhost.crt
- ./localhost.key:/localhost.key
depends_on:
- backend
- frontend
- goautowp-serve-public
- keycloak
ports:
- "80:80"
- "443:443"
backend-nginx:
image: registry.pereslegin.ru/autowp/backend:nginx-v1.4.0
container_name: autowp_test_backend_nginx
restart: always
environment:
FASTCGI: backend:9000
depends_on:
- backend
backend:
image: registry.pereslegin.ru/autowp/backend:v1.4.0
container_name: autowp_test_backend
restart: always
environment:
AUTOWP_TWITTER_USERNAME: ""
AUTOWP_TWITTER_OAUTH_KEY: ""
AUTOWP_TWITTER_OAUTH_SECRET: ""
AUTOWP_TWITTER_TOKEN_OAUTH: ""
AUTOWP_TWITTER_TOKEN_OAUTH_SECRET: ""
AUTOWP_FACEBOOK_APP_ID: ""
AUTOWP_FACEBOOK_APP_SECRET: ""
AUTOWP_FACEBOOK_PAGE_ACCESS_TOKEN: ""
AUTOWP_VK_TOKEN: ""
SONARCLOUD_TOKEN: ${SONARCLOUD_TOKEN}
volumes:
- ./config:/app/config
- ./data:/app/data
- ./cache:/app/cache
- ./module:/app/module
- ./public_html:/app/public_html
- ./vendor:/app/vendor
- ./etc/nginx/conf.d:/etc/nginx/conf.d
- ./etc/nginx/sites-available:/etc/nginx/sites-available
- ./composer.json:/app/composer.json
- ./composer.lock:/app/composer.lock
- ./install-dev.sh:/app/install-dev.sh
- ./install-dev-db.sh:/app/install-dev-db.sh
- ./start.sh:/app/start.sh
depends_on:
- redis
- mysql
- rabbitmq
- goautowp-serve-private
- minio
- createbuckets
redis:
image: redis:alpine
container_name: autowp_test_redis
restart: always
expose:
- "6379"
mysql:
image: mysql:8
container_name: autowp_test_mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: autowp_test
MYSQL_USER: autowp_test
MYSQL_PASSWORD: test
volumes:
- "./mysql:/var/lib/mysql"
- "./mysql.conf.d:/etc/mysql/conf.d"
expose:
- "3306"
ports:
- "3306:3306"
frontend:
image: registry.pereslegin.ru/autowp/frontend:v1.124.1
container_name: autowp_test_frontend
restart: always
volumes:
- "./frontend/be-BY:/usr/share/nginx/html/be-BY"
- "./frontend/en-GB:/usr/share/nginx/html/en-GB"
- "./frontend/fr:/usr/share/nginx/html/fr"
- "./frontend/pt-BR:/usr/share/nginx/html/pt-BR"
- "./frontend/ru:/usr/share/nginx/html/ru"
- "./frontend/uk:/usr/share/nginx/html/uk"
- "./frontend/zh-CN:/usr/share/nginx/html/zh-CN"
- "./frontend/es:/usr/share/nginx/html/es"
- "./frontend/it:/usr/share/nginx/html/it"
- "./frontend/he:/usr/share/nginx/html/he"
- "../autowp-frontend/etc/nginx/nginx.conf:/etc/nginx/nginx.conf"
- "./hostmap:/etc/nginx/hostmap:ro"
user: "101:101"
rabbitmq:
image: rabbitmq:management-alpine
container_name: autowp_test_rabbitmq
ports:
- "4369:4369"
- "5671:5671"
- "5672:5672"
- "15671:15671"
- "15672:15672"
- "15691:15691"
- "15692:15692"
- "25672:25672"
traffic-postgres:
image: postgres:13-alpine
container_name: autowp_test_traffic_postgres
restart: always
environment:
- POSTGRES_DB=traffic
- POSTGRES_USER=traffic
- POSTGRES_PASSWORD=password
goautowp-serve-public:
image: registry.pereslegin.ru/autowp/goautowp:v1.71.0
container_name: autowp_test_goautowp_serve_public
restart: always
command: serve-public
depends_on:
- rabbitmq
- mysql
- traffic-postgres
- keycloak
- redis
volumes:
- "./goautowp/config.yaml:/config.yaml:ro"
- "./module/Application/config/model.conf:/model.conf:ro"
- "./module/Application/config/policy.csv:/policy.csv:ro"
goautowp-serve-grpc:
image: registry.pereslegin.ru/autowp/goautowp:v1.71.0
container_name: autowp_test_goautowp_serve_grpc
restart: always
command: serve-grpc
depends_on:
- rabbitmq
- mysql
- traffic-postgres
- keycloak
- redis
volumes:
- "./goautowp/config.yaml:/config.yaml:ro"
- "./module/Application/config/model.conf:/model.conf:ro"
- "./module/Application/config/policy.csv:/policy.csv:ro"
goautowp-serve-private:
image: registry.pereslegin.ru/autowp/goautowp:v1.71.0
container_name: autowp_test_goautowp_serve_private
restart: always
command: serve-private
depends_on:
- rabbitmq
- mysql
- traffic-postgres
- keycloak
- redis
volumes:
- "./goautowp/config.yaml:/config.yaml:ro"
- "./module/Application/config/model.conf:/model.conf:ro"
- "./module/Application/config/policy.csv:/policy.csv:ro"
goautowp-listen-df-amqp:
image: registry.pereslegin.ru/autowp/goautowp:v1.71.0
container_name: autowp_test_goautowp_listen_df_amqp
restart: always
command: listen-df-amqp
depends_on:
- rabbitmq
- mysql
- traffic-postgres
- keycloak
- redis
volumes:
- "./goautowp/config.yaml:/config.yaml:ro"
- "./module/Application/config/model.conf:/model.conf:ro"
- "./module/Application/config/policy.csv:/policy.csv:ro"
goautowp-listen-monitoring-amqp:
image: registry.pereslegin.ru/autowp/goautowp:v1.71.0
container_name: autowp_test_goautowp_listen_monitoring_amqp
restart: always
command: listen-monitoring-amqp
depends_on:
- rabbitmq
- mysql
- traffic-postgres
- keycloak
- redis
volumes:
- "./goautowp/config.yaml:/config.yaml:ro"
- "./module/Application/config/model.conf:/model.conf:ro"
- "./module/Application/config/policy.csv:/policy.csv:ro"
goautowp-autoban:
image: registry.pereslegin.ru/autowp/goautowp:v1.71.0
container_name: autowp_test_goautowp_autoban
restart: always
command: autoban
depends_on:
- rabbitmq
- mysql
- traffic-postgres
- keycloak
- redis
volumes:
- "./goautowp/config.yaml:/config.yaml:ro"
- "./module/Application/config/model.conf:/model.conf:ro"
- "./module/Application/config/policy.csv:/policy.csv:ro"
minio:
image: quay.io/minio/minio
container_name: autowp_test_minio
restart: always
environment:
MINIO_ROOT_USER: "AKIAIOSFODNN7EXAMPLE"
MINIO_ROOT_PASSWORD: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
ports:
- "19000:9000"
- "9001:9001"
volumes:
- "./minio/data:/data"
command: server --console-address ":9001" /data
createbuckets:
image: minio/mc
container_name: autowp_test_createbuckets
depends_on:
- minio
entrypoint: >
/bin/sh -c "
while ! /usr/bin/mc config host add autowp http://minio:9000 AKIAIOSFODNN7EXAMPLE wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY;
do echo 'Wait minio to startup...' && sleep 1;
done;
/usr/bin/mc mb autowp/format;
/usr/bin/mc anonymous set download autowp/format;
/usr/bin/mc mb autowp/user;
/usr/bin/mc anonymous set download autowp/user;
/usr/bin/mc mb autowp/brand;
/usr/bin/mc anonymous set download autowp/brand;
/usr/bin/mc mb autowp/picture;
/usr/bin/mc anonymous set download autowp/picture;
/usr/bin/mc mb autowp/files;
/usr/bin/mc anonymous set download autowp/files;
exit 0;
"
keycloak:
image: bitnami/keycloak:20
container_name: autowp_test_keycloak
restart: always
environment:
KEYCLOAK_ADMIN_USER: admin
KEYCLOAK_ADMIN_PASSWORD: password
KEYCLOAK_MANAGEMENT_USER: manager
KEYCLOAK_MANAGEMENT_PASSWORD: password
KEYCLOAK_DATABASE_HOST: postgres-keycloak
KEYCLOAK_DATABASE_NAME: keycloak
KEYCLOAK_DATABASE_USER: keycloak
KEYCLOAK_DATABASE_PASSWORD: password
KC_HTTP_RELATIVE_PATH: /auth
KEYCLOAK_EXTRA_ARGS: -Dkeycloak.import=/opt/keycloak/data/import/realm.json
volumes:
- ./keycloak/realm.json:/opt/keycloak/data/import/realm.json
ports:
- "8081:8080"
depends_on:
- postgres-keycloak
postgres-keycloak:
image: postgres:13-alpine
container_name: autowp_test_postgres_keycloak
restart: always
environment:
- POSTGRES_DB=keycloak
- POSTGRES_USER=keycloak
- POSTGRES_PASSWORD=password
ports:
- "5433:5432"