elasticsearch 安装magento 2使用docker,服务器已经docker-compose.yml,我应该写单独的magento 2在magento文件夹?

aiqt4smr  于 2023-02-21  发布在  ElasticSearch
关注(0)|答案(1)|浏览(245)

我在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。

1aaf6o9v

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设置

相关问题