apache - docker httpd :alpine image exits with code 1

标签 apache docker docker-compose

我正在尝试使用 httpd docker image 运行一些基本的 html 页面。

docker 文件

FROM httpd:alpine

COPY ./views /usr/local/apache2/htdocs/    # where my html pages stored

COPY httpd.conf /usr/local/apache2/conf/httpd.conf

RUN httpd -v

EXPOSE 7074

httpd.conf

ServerName localhost
Listen 7074
LoadModule mpm_event_module modules/mod_mpm_event.so

docker-compose

version: '3'

frontend_image:
    image: frontend_image
    build: 
      context: ./frontend_image
      dockerfile: Dockerfile
    network_mode: "host"
    env_file: "./api.env"
    depends_on: 
      - apigateway

然后:sudo docker-compose up --build

RUN httpd -v 给出:

Server version: Apache/2.4.43 (Unix)
Server built:   Apr 24 2020 15:46:58

但是

Project_frontend_image_1 exited with code 1

我如何将入口点添加到 httpd,因为我在 /usr/sbin 中没有 apachectl2

引用:Docker run Exited 1 httpd

编辑:

我试过 docker run -dit --name my-apache-app -p 7575:80 -v "$PWD":/usr/local/apache2/htdocs/httpd:2.4 并且有效。

最佳答案

这似乎是 httpd.conf 文件的问题,而不是 Docker 镜像的问题。

你可以运行 docker run -dit --name my-apache-app -p 7575:80 -v "$PWD":/usr/local/apache2/htdocs/httpd:2.4并访问 apache 服务。

运行上面的命令并登录到正在运行的容器:sudo docker exec -it container_id/bin/sh

cat/usr/local/apache2/conf/httpd.conf

复制httpd.conf中的内容和过去,更改端口。

无需添加 CMD[""] 东西,因为 httpd:alpine 基本图像可以做到这一点。

只需在 Dockerfile 中 COPY httpd.conf/usr/local/apache2/conf/httpd.conf

关于apache - docker httpd :alpine image exits with code 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61853292/

相关文章:

git - 构建 docker 镜像时配置 git

以非root用户身份运行的Docker容器进程无法写入Docker卷

php - 即使完全删除,Docker容器仍会下载并执行

PHP 错误报告停止工作

apache - 根据 apache env 变量有条件地要求 HTTP 身份验证

bash - 从 Dockerfile 删除注释创建 bash 脚本

opencv - 在 ARM Docker 容器中构建 OPENCV 时出现问题

Java System.getenv 无法解析 docker-compose 中定义的环境变量

linux - 了解服务器结构

java - apache poi如何刷新整个工作簿