Docker compose,apache2:无法可靠地确定服务器';s完全限定的域名,

Docker compose,apache2:无法可靠地确定服务器';s完全限定的域名,,docker,docker-compose,Docker,Docker Compose,我知道已经处理了一个非常类似的答案,但在我的例子中,我使用的是一个已经制作好的docker图像(),我认为我无法修改Dockerfile 我想我需要执行这个命令echo“ServerName localhost”>/etc/apache2/apache2.conf,但我不知道如何执行,我想收集docker compose.yml文件中的所有配置,如下所示: version: "3.7" services: app: image: prestashop/prest

我知道已经处理了一个非常类似的答案,但在我的例子中,我使用的是一个已经制作好的docker图像(),我认为我无法修改Dockerfile

我想我需要执行这个命令
echo“ServerName localhost”>/etc/apache2/apache2.conf
,但我不知道如何执行,我想收集docker compose.yml文件中的所有配置,如下所示:

version: "3.7"

services:
  app:
    image: prestashop/prestashop:1.7
    ports:
      - 8080:80
    working_dir: /var/www/html
    volumes:
      - ./:/var/www/html
    environment:
      DB_SERVER: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: mypass123
      MYSQL_DB: prestashop

  mysql:
    image: mysql:5.7
    environment: 
      MYSQL_ROOT_PASSWORD: mypass123
      MYSQL_DATABASE: prestashop

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - 8081:80
    environment:
      MYSQL_ROOT_PASSWORD: mypass123
      MYSQL_DATABASE: prestashop
当我运行
docker compose up
时,我得到这个“错误”

phpmyadmin|u 1 | AH00558:apache2:无法使用172.20.0.3可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以抑制此消息

app|u 1 | AH00558:apache2:无法使用172.20.0.4可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以抑制此消息

有什么想法吗

多谢各位


Aymeric

您可以通过创建以下
Dockerfile

FROM prestashop/prestashop:1.7

RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
并修改docker-compose.yml

...
services:
  app:
    build: .
    ports:
      - 8080:80
    working_dir: /var/www/html
...

也许有文档记录的
PS\u DOMAIN
环境变量可以解决您的问题?很抱歉,错误实际上涉及phpmyadmin容器,而不是Prestashop容器,但感谢您的提示!抱歉,我没有完整阅读问题,当您开始讨论更改prestashop图像时。。。servername消息不是一个“错误”,它只是一个警告,表示它默认为容器IP,不应该有任何影响。您在使用phpmyadmin容器时有任何问题吗?无论如何,也许
PMA\u ABSOLUTE\u URI
en var会有所帮助。再次抱歉,我在prestashop图像上也有此警告,但它出现在日志上之后。。。我刚刚更新了我的帖子你只是想删除邮件,还是你在使用prestashop容器化堆栈时遇到了真正的问题?在第二种情况下:你真正的问题是什么?打开localhost:8080是否可以让您访问prestashop站点?打开localhost:8081是否可以让您访问phpmyadmin?谢谢,我刚刚这么做了,但我仍然收到警告,并且在/etc/apache2/apache2上没有写“ServerName localhost”。confIt对我来说工作正常。为了验证,在开始构图后,docker将构建新图像。您可以通过
docker image ls
看到这一点。名称很可能是
test\u app:latest
。要检查命令是否已执行,请使用
docker image history
。启动image
docker运行的实例--entrypoint bash-ti--rm
,然后检查文件。在我的例子中,我可以看到文件中添加的行