gpt4 book ai didi

Docker:执行shell脚本时出现错误代码127

转载 作者:行者123 更新时间:2023-12-02 18:17:52 46 4
gpt4 key购买 nike

所以我似乎无法弄清楚这一点,但是在运行 Dockerfile 时出现错误代码 127。是什么导致了这个错误?

我的 Dockerfile :

FROM composer as comp

FROM php:7.4-fpm-alpine
COPY --from=comp /usr/bin/composer /usr/bin/composer
COPY ./docker/install-deps.sh /tmp/install-deps.sh
RUN echo $(ls /tmp)
RUN /tmp/install-deps.sh
COPY . /var/www
WORKDIR /var/www
RUN composer install -o --no-dev

构建Dockerfile后的结果:
Building php
Step 1/9 : FROM composer as comp
---> 433420023b60
Step 2/9 : FROM php:7.4-fpm-alpine
---> 78e945602ecc
Step 3/9 : COPY --from=comp /usr/bin/composer /usr/bin/composer
---> 46117e22b4de
Step 4/9 : COPY ./docker/install-deps.sh /tmp/install-deps.sh
---> 7e46a2ee759c
Step 5/9 : RUN echo $(ls /tmp)
---> Running in aa1f900032f9
install-deps.sh
Removing intermediate container aa1f900032f9
---> eb455e78b7f6
Step 6/9 : RUN /tmp/install-deps.sh
---> Running in 6402a15cccb2
/bin/sh: /tmp/install-deps.sh: not found
ERROR: Service 'php' failed to build: The command '/bin/sh -c /tmp/install-deps.sh' returned a non-zero code: 127

install-deps.sh :
#!/bin/sh

set -e

apk add --update --no-cache \
postgresql-dev \
mysql-client \
yaml-dev \
git \
openssl

docker-php-ext-install pcntl pdo_mysql pdo_pgsql

# yaml
apk add --no-cache --virtual .build-deps g++ make autoconf
pecl channel-update pecl.php.net
pecl install yaml
docker-php-ext-enable yaml
apk del --purge .build-deps

最佳答案

Docker 正在执行 install-deps.sh脚本。问题在于 install-deps.sh 中的命令当 docker 尝试运行脚本时无法识别。

如您所见,脚本返回 error code of 127意味着文件中的命令不存在。

例如 - 试试这个:

touch test.sh
echo "not-a-command" >> test.sh
chmod 755 test.sh
/bin/sh -c "./test.sh"

输出:
/root/test.sh: line 1: not-a-command: command not found

现在检查退出代码:
echo $?
127

我建议在交互式环境中运行脚本来识别/安装未找到的命令。

关于Docker:执行shell脚本时出现错误代码127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62390765/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com