如何在Docker中运行Alpine 2上的Apache 2?

Psy*_*nch 13 apache2 docker alpine-linux

根据Alpine wiki,我必须rc-service apache2 start在安装Apache 2之后运行.但是,rc-service在容器内运行的Alpine中没有.如何让服务命令在Docker容器中运行?

luc*_*san 8

Alpine 默认没有安装 rc-service。您需要安装它(作为 Dockerfile 构建过程的一部分或在容器中手动安装)。

秘密调用是:

apk add openrc --no-cache
Run Code Online (Sandbox Code Playgroud)

如果你想从容器外部运行它(比如 docker run),那么使用:

docker run [options etc] bin/ash -c "apk add openrc --no-cache"
Run Code Online (Sandbox Code Playgroud)

PS:rc-service 对其他东西和 mariadb 之类的东西都有好处(也不包括在 alpine 中)


Von*_*onC 6

gliderlabs/docker-alpine问题183说明泊坞工人Alpine映像没有servicerc-service

您可以改为查看nimmis/docker-alpine-apache基于nimmis/docker-alpine-micro,其中包括一个runit,用于处理启动和关闭自动启动的进程。

该initd将启动apache2脚本,该脚本调用:

exec /usr/sbin/httpd -D FOREGROUND -f /web/config/httpd.conf
Run Code Online (Sandbox Code Playgroud)