GitHub Actions生成的docker镜像在运行镜像时会导致“Permission denied”

jyztefdp  于 2023-11-17  发布在  Docker
关注(0)|答案(1)|浏览(140)

我想尝试GitHub操作:编译一个cargo项目,构建一个docker镜像,并将其发布为GitHub包(该项目可以在GitHub here上找到)。它工作了,Rust项目被编译,docker镜像被构建,然后镜像被发布。但是当我尝试运行镜像时,我得到了以下响应:

mobergmann@ziegel ~> docker pull ghcr.io/mobergmann/actions-docker-test:latest
Trying to pull ghcr.io/mobergmann/actions-docker-test:latest...
... # rest is left out, because of redundancy
mobergmann@ziegel ~> docker run ghcr.io/mobergmann/actions-docker-test:latest
/bin/sh: 1: ./gh-action-test: Permission denied

字符串
运行编译后的二进制文件时权限被拒绝。我无法理解这一点,特别是因为在Dockerfile中我这样做了:

RUN chmod 555 gh-action-test
RUN ls -l .
RUN ls -l gh-action-test


我的操作日志中的输出是:

#7 [2/7] COPY ./target/release/gh-action-test /src/gh-action-test
#7 DONE 0.0s

#8 [3/7] WORKDIR /src
#8 DONE 0.0s

#9 [4/7] RUN pwd
#9 0.224 /src
#9 DONE 0.2s

#10 [5/7] RUN chmod 555 gh-action-test
#10 DONE 0.3s

#11 [6/7] RUN ls -l .
#11 0.322 total 4
#11 0.322 dr-xr-xr-x 1 root root 4096 Oct 30 22:19 gh-action-test
#11 DONE 0.3s

#12 [7/7] RUN ls -l gh-action-test
#12 0.209 total 4548
#12 0.209 -rw-r--r-- 1 root root 4654808 Oct 30 22:19 gh-action-test
#12 DONE 0.2s


为什么ls -l .ls -l <file>的文件权限不同?
当我尝试在本地编译和构建镜像时,我在运行镜像时没有得到错误。我怀疑错误是由于伪影造成的,但我不确定。
你们谁能帮我弄清楚如何使表单的动作生成的图像可执行?

4dbbbstv

4dbbbstv1#

您有一个gh-action-test目录,其中有一个gh-action-test文件,这就是dr-xr-xr-x中的d所代表的。ls -l .命令显示当前目录中的gh-action-test目录。ls -l gh-action-test命令显示gh-action-test/gh-action-test文件。
如果执行ls -ld gh-action-test,您应该看到与ls -l .中相同的权限

相关问题