【发布时间】:2022-01-19 17:26:24
【问题描述】:
我正在尝试使用我现有的 Magento 项目创建多个容器。
Task #1) 我已经按照markshust/docker-magento 成功地将现有项目移至 Docker。 一切都按预期工作得很好。但这仅适用于将单个 Magento 实例移动到 Docker
任务 #2) 我正在尝试在 Docker 上创建相同现有 Magento 项目的多个实例
我尝试使用不同的 --project-name 创建 2 个不同的 YML(以区分容器)。遵循与 Task #1 相同的步骤,并在第二个 YML 中更新了外部端口。但不幸的是,我现在无法运行任何容器。 无效!
当我尝试访问第一个 Magento 容器时,例如https://example.com:444/ 它在 system.log 中添加错误,奇怪的是,我的第二个 docker 容器的 system.log 中记录了相同的错误
我怀疑卷在我的情况下会产生问题(因为卷路径在两个 YML 中都相同),但我无法在这里找出确切的问题。在下面添加两个 YML
docker-compose.yml(位于 docker 根目录)
version: "3"
services:
app:
image: markoshust/magento-nginx:1.18-5
ports:
- "81:8000"
- "444:8443"
depends_on:
- "db"
volumes: &appvolumes
- ~/.composer:/var/www/.composer:cached
- ~/.ssh/id_rsa:/var/www/.ssh/id_rsa:cached
- ~/.ssh/known_hosts:/var/www/.ssh/known_hosts:cached
- appdata:/var/www/html
- sockdata:/sock
- ssldata:/etc/nginx/certs
networks:
- customNetwork
phpfpm:
image: markoshust/magento-php:7.4-fpm-11
volumes: *appvolumes
env_file: env/phpfpm.env
networks:
- customNetwork
db:
image: mariadb:10.4
restart: on-failure
command: --max_allowed_packet=256M
ports:
- "3307:3306"
env_file: env/db.env
volumes:
- dbdata:/var/lib/mysql
networks:
- customNetwork
redis:
image: redis:5.0-alpine
ports:
- "6379:6379"
networks:
- customNetwork
elasticsearch:
image: markoshust/magento-elasticsearch:7.9.3-1
ports:
- "9201:9200"
- "9301:9300"
environment:
- "discovery.type=single-node"
## Set custom heap size to avoid memory errors
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
## Avoid test failures due to small disks
## More info at https://github.com/markshust/docker-magento/issues/488
- "cluster.routing.allocation.disk.threshold_enabled=false"
- "index.blocks.read_only_allow_delete"
networks:
- customNetwork
volumes:
appdata:
dbdata:
sockdata:
ssldata:
networks:
customNetwork:
docker-compose-second.yml(位于 docker 根目录)
version: "3"
services:
app:
image: markoshust/magento-nginx:1.18-5
ports:
- "82:8000"
- "445:8443"
depends_on:
- "db"
volumes: &appvolumes
- ~/.composer:/var/www/.composer:cached
- ~/.ssh/id_rsa:/var/www/.ssh/id_rsa:cached
- ~/.ssh/known_hosts:/var/www/.ssh/known_hosts:cached
- appdata:/var/www/html
- sockdata:/sock
- ssldata:/etc/nginx/certs
networks:
- customNetworkM2
phpfpm:
image: markoshust/magento-php:7.4-fpm-11
volumes: *appvolumes
env_file: env/phpfpm.env
networks:
- customNetworkM2
db:
image: mariadb:10.4
restart: on-failure
command: --max_allowed_packet=256M
ports:
- "3308:3306"
env_file: env/db.env
networks:
- customNetworkM2
redis:
image: redis:5.0-alpine
ports:
- "6381:6379"
networks:
- customNetworkM2
elasticsearch:
image: markoshust/magento-elasticsearch:7.9.3-1
ports:
- "9202:9200"
- "9302:9300"
environment:
- "discovery.type=single-node"
## Set custom heap size to avoid memory errors
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
## Avoid test failures due to small disks
## More info at https://github.com/markshust/docker-magento/issues/488
- "cluster.routing.allocation.disk.threshold_enabled=false"
- "index.blocks.read_only_allow_delete"
networks:
- customNetworkM2
volumes:
appdata:
dbdata:
rabbitmqdata:
sockdata:
ssldata:
networks:
customNetworkM2:
db.env(位于 [docker root]/env 目录)
MYSQL_HOST=db
MYSQL_ROOT_PASSWORD=magento
MYSQL_DATABASE=magento
MYSQL_USER=root
MYSQL_PASSWORD=magento
MYSQL_INTEGRATION_ROOT_PASSWORD=magento
MYSQL_INTEGRATION_DATABASE=magento_integration_tests
MYSQL_INTEGRATION_USER=root
MYSQL_INTEGRATION_PASSWORD=magento
MYSQL_INTEGRATION_HOST=db
我是 Docker 新手。需要一些帮助! 附言我在 Ubuntu 18.04 和 Magento 2.4.3-P1 上使用 docker & docker-compose
【问题讨论】:
标签: docker magento docker-compose