问题描述
我们正在尝试在基于 Java 的 alpine 映像 (anapsix/alpine-java:7_jdk
) 上安装和运行 nginx,但是当我们启动它时遇到以下错误
We are trying to install and run nginx on java based alpine image (anapsix/alpine-java:7_jdk
) but we are facing below error when we start it
rc-service nginx start
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/blkio/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/cpu/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/cpu,cpuacct/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/cpuacct/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/cpuset/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/devices/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/freezer/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/hugetlb/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/memory/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/net_cls/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/net_cls,net_prio/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/net_prio/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/perf_event/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/pids/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 250: can't create /sys/fs/cgroup/systemd/tasks: Read-only file system
* Starting networking ...
awk: /etc/network/interfaces: No such file or directory
* ERROR: networking failed to start
* ERROR: cannot start nginx as networking would not start
我们已经尝试了很多文章,但没有提到如何在这个基于 alpine 的图像上修复 nginx 的网络问题.即使我们创建了 /etc/network/interfaces
文件,我们也不知道里面的正确值应该是什么.下面是我们正在运行的 Dockerfile
We have tried many articles but nowhere it is mentioned that how to fix networking issue with the nginx on this alpine based image. Even if we create /etc/network/interfaces
file, we don't know what should be the correct values inside it. Below is what we are running Dockerfile
# Add Nginx
RUN apk --update add nginx openrc
RUN mkdir -p /run/nginx
RUN touch /run/nginx/nginx.pid
# RUN adduser -D -g 'nginx' nginx
# RUN mkdir /home/nginx
RUN chown -R nginx:nginx /var/lib/nginx
# RUN chown -R nginx:nginx /home/nginx
COPY birt.conf /etc/nginx/conf.d/birt.conf
# COPY index.html /nginx
RUN openrc
RUN touch /run/openrc/softlevel
RUN rc-update add nginx default
请帮助我们实现这一目标.
Please help us to achieve this.
推荐答案
我看到这个惊人的 答案.
这是一个有效的 Dockerfile :
Here is a working Dockerfile :
FROM anapsix/alpine-java:7_jdk
COPY script.bash .
RUN apk --update add nginx openrc
RUN openrc
RUN touch /run/openrc/softlevel
CMD bash ./script.bash
这里是 CMD
中使用的 script.bash
:
and here is the script.bash
used in CMD
:
#!/bin/bash
# Tell openrc loopback and net are already there, since docker handles the networking
echo 'rc_provide="loopback net"' >> /etc/rc.conf
# get inside the container bash
bash
使用 docker build 构建镜像后.-t nginx_alpine_java
运行以下命令:
after building the image using docker build . -t nginx_alpine_java
run the following commands :
docker run -it -p 80:80 nginx_alpine_java
现在我们在容器 bash 中
now we are inside our container bash
bash-4.3# rc-service nginx status
* status: stopped
bash-4.3# rc-service nginx start
* /run/nginx: creating directory
* /run/nginx: correcting owner [ ok ]
* Starting nginx ... [ ok ]
我希望它能与你合作.
这篇关于错误:无法启动 nginx,因为网络无法在 alpine docker 映像上启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!