繁体   English   中英

启动容器进程导致“ exec:\\” / tmp / run.sh \\“:权限被拒绝”:未知

[英]Starting container process caused “exec: \”/tmp/run.sh\“: permission denied”: unknown

我有一个Dockerfile

FROM composer:1.8.5 as build_stage

COPY . /src
WORKDIR /src
RUN composer install


FROM alpine:3.8
RUN apk --no-cache add \
php7 \
php7-mbstring \
php7-session \
php7-openssl \
php7-tokenizer \
php7-json \
php7-pdo \
php7-pdo_pgsql \
php7-pgsql
COPY --from=build_stage /src  /src
RUN ls -al
RUN set -x \
addgroup -g 82 -S www-data \
adduser -u 82 -D -S -G www-data www-data
WORKDIR /src
RUN ls -al
RUN chmod -R 777 storage
RUN sudo chmod +x run.sh
copy ./run.sh /tmp
ENTRYPOINT ["/tmp/run.sh"]

run.sh

#!/bin/sh

cd /app
php artisan migrate:fresh --seed
php artisan serve --host=0.0.0.0

当我跑步时,我不断

在此处输入图片说明

人们将如何进行进一步调试?

RUN sudo chmod +x run.sh
copy ./run.sh /tmp

您正在从构建上下文中复制未经执行权限的新副本到/tmp/run.sh 尝试更改以下命令。

RUN chmod +x run.sh
RUN cp run.sh /tmp

请注意,不需要sudo,因为您已经是root用户。

问题在以下块中:

RUN sudo chmod +x run.sh
copy ./run.sh /tmp
ENTRYPOINT ["/tmp/run.sh"]

您使run.sh成为可执行文件,然后用不可执行的版本覆盖它。 切换两个命令的顺序应该可以解决该问题:

COPY ./run.sh /tmp
RUN chmod +x /tmp/run.sh
ENTRYPOINT ["/tmp/run.sh"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM