【问题标题】:In the docker alpine container, the nginx or mariadb or supervisor service cannot be started automatically (set via openrc)在docker alpine容器中,nginx或mariadb或supervisor服务无法自动启动(通过openrc设置)
【发布时间】:2021-07-29 15:26:25
【问题描述】:

我尝试在 alpine cintainer 中自动安装并启动“nginx”或“mariadb”或“supervisord”服务(并且已经“apk add openrc”) 但是每次重启容器,nginx服务总是显示crashed

我已经执行了“rc-update add nginx default” 但是只要重启容器,比如“docker restart nginx-alpine” 然后进入容器后查看(docker exec -it nginx-alpine sh),命令“rc-status”会显示nginx服务“crashed”,而不是开机自动启动(重启)

我的码头文件:

FROM alpine

VOLUME /sys/fs/cgroup

RUN apk update; \
    apk add nginx openrc; \

    mkdir -p /run/openrc; \
    touch /run/openrc/softlevel; \
    /sbin/openrc 2>/dev/unll;\

    rc-update add nginx default;\
    rc-service nginx restart;

EXPOSE 80

enter image description here

【问题讨论】:

    标签: docker nginx crash supervisord alpine


    【解决方案1】:

    您应该在 docker 映像中将 nginx 作为命令启动。 您可以尝试如下重建您的 Dockerfile 并进行测试吗?

    FROM alpine
    
    VOLUME /sys/fs/cgroup
    
    RUN apk update; \
        apk add nginx openrc; \
    
        mkdir -p /run/openrc; \
        touch /run/openrc/softlevel; \
        /sbin/openrc 2>/dev/unll;\
    
        rc-update add nginx default;
    
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]
    

    参考:https://docs.docker.com/engine/reference/builder/#cmd

    【讨论】:

    • 这个方法我试过了,还是不行。刚执行完“docker restart nginx-alpine”,再次进入容器查看“service nginx status”,显示crash。显然是高山图像造成了这个原因
    • 同理,cmd ["nginx", "-g", "daemon off;"] 是否只支持nginx?因为我安装了“mariadb”或者“supervisord”服务,出现了同样的情况......
    • 我没有得到和你一样的行为。您可以执行到容器中并尝试手动启动 nginx 吗? “docker run -it container:tag /bin/sh” 然后“rc-service nginx start” 你在标准输出中看到了什么?
    • 您是否测试过安装 mariadb 或 supervisord 来提供高山图像?你会遇到同样的问题
    猜你喜欢
    • 2016-06-13
    • 2018-10-13
    • 2018-04-20
    • 1970-01-01
    • 2013-08-05
    • 2016-04-29
    • 2023-03-14
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多