Запуск процесса контейнера вызвал "exec: \" / tmp / run.sh \ ": разрешение отклонено": неизвестно - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть 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

и когда я бежал, я продолжал получать

enter image description here

Как можно пойти дальше и отладить это?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2019
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.

1 голос
/ 16 апреля 2019

Проблема в этом блоке:

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"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...