【问题标题】:Docker compose, apache2: Could not reliably determine the server's fully qualified domain name,Docker compose,apache2:无法可靠地确定服务器的完全限定域名,
【发布时间】:2021-05-29 10:38:37
【问题描述】:

我知道here 已经处理了一个非常相似的答案,但在我的情况下,我使用的是已经制作的 docker 映像 (https://hub.docker.com/r/prestashop/prestashop/),我认为我无法修改 Dockerfile强>

我想我需要执行这个命令echo "ServerName localhost" >> /etc/apache2/apache2.conf 但我不知道如何,理想情况下我想收集 docker-compose.yml 中的所有配置 strong> 文件,这里是:

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_1 | AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 172.20.0.3。全局设置“ServerName”指令以禁止显示此消息

app_1 | AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 172.20.0.4。全局设置“ServerName”指令以禁止显示此消息

有什么想法吗?

谢谢

艾美式

【问题讨论】:

  • 也许记录在案的PS_DOMAIN 环境变量可以解决您的问题?
  • 抱歉,错误实际上涉及 phpmyadmin 容器而不是 Prestashop 容器,但感谢提示!
  • 抱歉没有完整阅读这个问题,当你开始谈论更改 prestashop 图像时... servername 消息不是“错误”,它只是一个警告说它是默认的对于容器 IP,应该不会有任何影响。使用 phpmyadmin 容器有什么问题吗?无论如何,PMA_ABSOLUTE_URI en var 可能会有所帮助。
  • 再次抱歉,我在 prestashop 图片上也有此警告,但它出现在日志上之后...我刚刚更新了我的帖子
  • 您只是想摆脱消息,或者您在使用 prestashop 容器化堆栈时遇到了真正的问题?在第二种情况下:你真正的问题是什么?打开 localhost:8080 是否可以让您访问您的 prestashop 站点?打开 localhost:8081 会让你进入 phpmyadmin 吗?

标签: docker docker-compose


【解决方案1】:

您可以通过创建以下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
...

【讨论】:

  • 谢谢,我刚刚这样做了,但我仍然收到警告,并且 /etc/apache2/apache2.conf 中没有写“ServerName localhost”
  • 对我来说工作正常。为了验证,在您开始合成后,docker 将构建新图像。您可以通过docker image ls 看到这一点。该名称很可能是test_app:latest。要检查命令是否已执行,请使用docker image history <<image name>>。启动图像docker run --entrypoint bash -ti --rm <<image name>> 的实例,然后检查文件。就我而言,我可以看到文件中添加的行
猜你喜欢
  • 2011-08-16
  • 2021-08-14
  • 2013-08-19
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 2022-07-18
  • 2015-10-15
  • 1970-01-01
相关资源
最近更新 更多