我在VPS服务器根目录下有一个docker-compose.yml
version: '3'
services:
mysql:
image: mariadb:10.3.17
command: --max_allowed_packet=256M --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- "./data/db:/var/lib/mysql:delegated"
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
restart: always
litespeed:
image: litespeedtech/litespeed:${LSWS_VERSION}-${PHP_VERSION}
env_file:
- .env
volumes:
- ./lsws/conf:/usr/local/lsws/conf
- ./lsws/admin/conf:/usr/local/lsws/admin/conf
- ./bin/container:/usr/local/bin
- ./sites:/var/www/vhosts/
- ./acme:/root/.acme.sh/
- ./logs:/usr/local/lsws/logs/
ports:
- 80:80
- 443:443
- 443:443/udp
- 7080:7080
restart: always
environment:
TZ: ${TimeZone}
phpmyadmin:
image: bitnami/phpmyadmin:5.0.2-debian-10-r72
ports:
- 8080:80
- 8443:443
environment:
DATABASE_HOST: mysql
restart: always
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
environment:
- discovery.type=single-node
ports:
- 9200:9200
volumes:
- esdata:/usr/share/elasticsearch/data
restart: always
volumes:
esdata:
它有服务器配置在上面的代码,我应该写我的配置有关磁2在同一文件中,如下所示
version: '3'
services:
web:
image: webdevops/php-apache-dev:ubuntu-16.04
container_name: web
restart: always
user: application
environment:
- WEB_ALIAS_DOMAIN=local.domain.com
- WEB_DOCUMENT_ROOT=/app/pub
- PHP_DATE_TIMEZONE=EST
- PHP_DISPLAY_ERRORS=1
- PHP_MEMORY_LIMIT=2048M
- PHP_MAX_EXECUTION_TIME=300
- PHP_POST_MAX_SIZE=500M
- PHP_UPLOAD_MAX_FILESIZE=1024M
volumes:
- /path/to/magento:/app:cached
ports:
- "80:80"
- "443:443"
- "32823:22"
links:
- mysql
mysql:
image: mariadb:10
container_name: mysql
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=magento
volumes:
- db-data:/var/lib/mysql
phpmyadmin:
container_name: phpmyadmin
restart: always
image: phpmyadmin/phpmyadmin:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- PMA_USER=root
- PMA_PASSWORD=root
ports:
- "8080:80"
links:
- mysql:db
depends_on:
- mysql
volumes:
db-data:
external: false
如果没有,那么应该是什么情况?1-我应该创建新的docker-compose-magento.yml的根或内magento文件夹?2-如果我写docker-compose.yml内magento文件夹,那么我怎么才能连接到我的服务器根docker文件夹,使我也可以使用elasticsearch。
1条答案
按热度按时间1aaf6o9v1#
首先,你需要知道什么应用程序正在使用现有的docker-compose文件运行,你可以检查现有的虚拟主机配置文件,你可以在“sites”目录中找到Map到lightspeed web服务器虚拟主机路径的卷Map“/var/www/vhosts”。
如果任何应用程序正在运行使用该docker-compose文件,那么你必须创建一个单独的docker-compose运行Magento。在这种情况下,一个单独的docker网络将创建所有的Magento 2 docker-compose服务,你不能访问另一个网络上的服务(ElasticSearch)(在一个单独的docker-compose)。你必须实现ES的Magento 2 docker-compose以及。
如果现有的docker-compose文件没有运行,那么您可以根据您的要求和理解合并两个docker-compose文件。或者您可以只应用新的Magento 2 docker-compose文件。
所以这里最主要的是使用两个不同的网络。而码头集装箱只能与同一网络中的另一个集装箱对话。
另外,lightspeed是一个使用与Apache相同端口号的web服务器(webdevops/php-apache-dev:ubuntu-16.04)。因此,如果你创建一个新的docker-composite并试图同时运行两者,将会出现端口冲突。因此,你需要通过使用不同的主机端口来管理它。如果这是一个生产服务器,那么这是不可能的,因为人们不会使用非默认端口号来访问web URL。
解决方案是Kubernetes,在Kubernetes中,您可以使用相同的公共端口运行多个应用程序,但不会发生冲突,因为在Kubernetes中,您可以将单个物理服务器划分为多个虚拟机,因此不会发生端口冲突。
请参阅本文了解Kubernetes设置https://technicallysound.in/how-to-setup-a-static-site-on-kubernetes/
请参阅本文了解Docker https://technicallysound.in/how-to-setup-magento-2-on-docker-for-development/上的Magento设置