我有这个dockerfile
FROM alpine:3.8
ENV LANG C.UTF-8
RUN set -x && \
apk add --no-cache \
openrc \
bash \
libreswan \
xl2tpd \
ppp \
&& mkdir -p /var/run/pluto \
&& mkdir -p /var/run/xl2tpd \
&& touch /var/run/xl2tpd/l2tp-control
COPY ipsec.conf /etc/ipsec.conf
COPY ipsec.secrets /etc/ipsec.secrets
COPY xl2tpd.conf /etc/xl2tpd/xl2tpd.conf
COPY options.l2tpd.client /etc/ppp/options.l2tpd.client
COPY startup.sh /
RUN ["chmod", "+x", "/startup.sh"]
CMD ["./startup.sh"]
当我在本地运行时,一切正常。但是我试图执行在gcp vm(ubuntu)中生成的映像,但是出现以下错误
/bin/sh: can't open './startup.sh': Permission denied
有人可以帮助我解决这个错误吗?
注意:我还尝试通过以下方式修改权限:
RUN ["chmod", "777", "/startup.sh"]
RUN chmod +x /startup.sh
RUN chmod 777 /startup.sh
并执行以下脚本:
ENTRYPOINT ["./startup.sh"]
RUN ["./startup.sh"]
RUN ./startup.sh
答案 0 :(得分:0)
您在此处缺少添加用户以更改权限的信息 More Info
RUN useradd -ms /bin/bash myuser
答案 1 :(得分:0)
尝试此操作将这些行添加到您的docker文件中。
RUN chown -R admin:admin /
RUN chmod 755 /
只需授予/
根目录的管理员权限即可。
您的docker文件将如下所示
FROM alpine:3.8
ENV LANG C.UTF-8
RUN set -x && \
apk add --no-cache \
openrc \
bash \
libreswan \
xl2tpd \
ppp \
&& mkdir -p /var/run/pluto \
&& mkdir -p /var/run/xl2tpd \
&& touch /var/run/xl2tpd/l2tp-control
COPY ipsec.conf /etc/ipsec.conf
COPY ipsec.secrets /etc/ipsec.secrets
COPY xl2tpd.conf /etc/xl2tpd/xl2tpd.conf
COPY options.l2tpd.client /etc/ppp/options.l2tpd.client
COPY startup.sh /
RUN chown -R admin:admin /
RUN chmod 755 /
CMD ["./startup.sh"]