Docker compose 命令不从“起作用”;“命令”;docker compose中的节

Docker compose 命令不从“起作用”;“命令”;docker compose中的节,docker-compose,Docker Compose,我尝试使用来运行我的(Laravel)代码。因为我们的生产服务器上目前有apache 但是,我需要加载模块mod_rewrite,默认情况下我不是这样 docker compose.yml apache: restart: unless-stopped image: php:7.2-apache container_name: apache_l command: bash -c "a2enmod rewrite && service apach

我尝试使用来运行我的(Laravel)代码。因为我们的生产服务器上目前有apache

但是,我需要加载模块mod_rewrite,默认情况下我不是这样

docker compose.yml

  apache:
    restart: unless-stopped
    image: php:7.2-apache
    container_name: apache_l
    command: bash -c "a2enmod rewrite && service apache2 restart"
    ports:
    - 80:80
    - 443:443
    environment:
      - APACHE_DOCUMENT_ROOT=/var/www/html/public/
    volumes:
    - .:/var/www/html
    - ./docker/php-ini/php.ini:/usr/local/etc/php/php.ini
    - ./docker/sites-enabled:/etc/apache2/sites-enabled/
apache:
    restart: unless-stopped
    image: php:7.2-apache
    container_name: apache_l
#    depends_on:
#    - openssl
    ports:
    - 80:80
    - 443:443
    environment:
      - APACHE_DOCUMENT_ROOT=/var/www/html/public/
    volumes:
    - .:/var/www/html
    - ./docker/apache2:/etc/apache2/
我编写该命令是为了启动mod_rewrite,如下所示:

如果我在容器中手动运行这些命令,它会正常工作,但是在这样的命令部分,我会得到一个错误日志:

启用模块重写

要激活新配置,您需要运行:

服务apache2重新启动

AH00558:apache2:无法可靠地确定服务器的完整配置 限定域名,使用192.168.0.3。设置“服务器名” 指令来全局抑制此消息

重新启动Apache httpd web服务器:apache2

模块重写已启用

为什么它只在手动运行这些命令时才起作用

奖金问题:(没那么重要)
为什么APACHE_DOCUMENT_ROOT环境变量不起作用。我必须手动更改
:/etc/apache2/sites enabled/
中的配置,才能使其工作,但变量已公布。

我通过第一次运行以另一种方式修复了它

docker cp apache_l:/etc/apache2/ .\docker\
将整个配置目录复制到主机,然后将该目录作为卷装入docker compose.yml

  apache:
    restart: unless-stopped
    image: php:7.2-apache
    container_name: apache_l
    command: bash -c "a2enmod rewrite && service apache2 restart"
    ports:
    - 80:80
    - 443:443
    environment:
      - APACHE_DOCUMENT_ROOT=/var/www/html/public/
    volumes:
    - .:/var/www/html
    - ./docker/php-ini/php.ini:/usr/local/etc/php/php.ini
    - ./docker/sites-enabled:/etc/apache2/sites-enabled/
apache:
    restart: unless-stopped
    image: php:7.2-apache
    container_name: apache_l
#    depends_on:
#    - openssl
    ports:
    - 80:80
    - 443:443
    environment:
      - APACHE_DOCUMENT_ROOT=/var/www/html/public/
    volumes:
    - .:/var/www/html
    - ./docker/apache2:/etc/apache2/
我还制作了一个符号链接,从mods可用/重写.loadmods启用/重写.load