我正试图用我现有的Magento项目创建多个容器。
任务1)通过跟踪标记/码头-magento. ,成功地将现有的项目转移到了Docker,一切都像预期的那样工作得很好。但这只适用于将单个Magento实例迁移到Docker
任务# 2) 我试图以类似的方式在Docker上创建同一个现有Magento项目的多个实例
我尝试用不同的--project-name创建两个不同的YML(以区分容器)。遵循与任务# 1相同的步骤,并在第二个YML中更新外部端口。但不幸的是,我现在无法运行任何一个集装箱。不起作用!
当我试图访问第一个Magento容器(例如https://example.com:444/ )时,它在system.log中添加了错误,奇怪的是,同样的错误被记录在我的第二个码头容器的system.log中
我怀疑卷在我的例子中会产生问题(因为卷路径在两个YML中是相同的),但是我无法在这里找到确切的问题。在下面添加两个YMLs
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 -复合-substd.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 (放置在码头根目录/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我是码头新来的。需要帮助!我在Ubuntu 18.04和Magento 2.4.3-P1上使用停靠和对接-构图
发布于 2022-11-23 08:27:52
问题已经解决了。请遵照以下指示:
创建文件docker-compose-instance1.yml
version: '3'
services:
magento:
image: folio3ecommerce/magento-php-apache:2.4.5
restart: on-failure
ports:
- "${APP_PORT}:80"
env_file: env/phpfpm.env
links:
- db
- redis
- elasticsearch
depends_on:
- db
networks:
- customNetwork
db:
image: mariadb:10.4
restart: on-failure
command: --max_allowed_packet=256M
ports:
- "${DB_PORT}:3306"
env_file: env/db.env
volumes:
- dbdata:/var/lib/mysql
networks:
- customNetwork
redis:
image: redis:5.0-alpine
restart: on-failure
ports:
- "${REDIS_PORT}:6379"
networks:
- customNetwork
elasticsearch:
image: elasticsearch:7.16.2
restart: on-failure
ports:
- "${ES_PORT}:9200"
- "${ES_SSL_PORT}:9300"
volumes:
- elasticsearchdata:/var/lib/elasticsearch
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:
redisdata:
elasticsearchdata:
networks:
customNetwork:执行以下命令,通过上述YML文件为instance1创建容器
docker-compose -f docker-compose-instance1.yml -p "instance1" up -d --build类似地,您可以使用docker-复合-instance2.yml、docker-复合-instance3.yml等创建多个实例。
您可以使用来自码头集线器https://hub.docker.com/r/folio3ecommerce/magento-php-apache/tags的以下图像
此映像为Magento实例提供了示例数据(v2.4.3、v2.4.4、v2.4.5)
我希望这能帮到你!
发布于 2022-01-07 02:09:58
我认为看一些容易理解的例子可以给你最好的印象。
您想要做的是完全有效的,图像应该是您需要运行的任何东西,而不需要配置。
要生成配置,您可以:
( a)容积安装
在容器启动过程中使用卷并挂载文件,运行-v my.ini:/etc/mysql/my.ini percona (与docker -组合类似)
( b)基于入口点的配置(生成)
( c)衍生图像
可能是为了“完整性”,即映像派生策略,因此您有一个名为"myapp“的基本映像,而对于安装X,则创建了一个新映像。
从我的应用程序
复制my.ini /etc/mysql/my.ini 复制application.yml /var/app/config/application.yml
https://stackoverflow.com/questions/70382113
复制相似问题