我有以下 Dockerfile
FROM docker.io/bitnami/jasperreports:7-debian-10
COPY custom-entrypoint.sh /app-entrypoint.sh
RUN chmod +x /app-entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
我正在尝试建立一个像这样的新形象
docker build -t registry/jasperserver:latest .
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
=> ERROR [3/7] RUN chmod +x /app-entrypoint.sh 0.4s
------
> [3/7] RUN chmod +x /app-entrypoint.sh:
#8 0.380 chmod: changing permissions of '/app-entrypoint.sh': Operation not permitted
------
executor failed running [/bin/sh -c chmod +x /app-entrypoint.sh]: exit code: 1
Run Code Online (Sandbox Code Playgroud)
为什么我无法更改 /app-entrypoint.sh 的权限?
编辑:
这是 docker info 的输出
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Build with BuildKit (Docker Inc., v0.6.1-docker)
compose: Docker Compose (Docker Inc., v2.0.0-rc.3)
scan: Docker Scan (Docker Inc., v0.8.0)
Server:
Server Version: 20.10.8
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: e25210fe30a0a703442421b0f60afac609f950a3
runc version: v1.0.1-0-g4144b63
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.60.1-microsoft-standard-WSL2
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.63GiB
Name: docker-desktop
ID: 6IIP:AJPF:HJJU:4J2X:MWJM:YIUH:ZXLZ:XHG5:E7SZ:RYKB:HBSR:RMMU
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Run Code Online (Sandbox Code Playgroud)
BMi*_*tch 12
该步骤将在普通用户无权访问的目录COPY中创建 uid/gid 为 0:0 (root:root) 的文件。/所选的基础映像配置为以 uid 1001 运行。可能最简单的方法是暂时切换回 root 来运行该步骤。
FROM docker.io/bitnami/jasperreports:7-debian-10
USER root
COPY custom-entrypoint.sh /app-entrypoint.sh
USER 1001
RUN chmod +x /app-entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
或者,您可以将脚本复制到用户有权访问该文件并具有正确所有权的目录。如果不拉取镜像,我怀疑/opt/bitnami/scripts可能有不同的权限:
FROM docker.io/bitnami/jasperreports:7-debian-10
COPY --chown=1001 custom-entrypoint.sh /opt/bitnami/scripts/app-entrypoint.sh
RUN chmod +x /opt/bitnami/scripts/app-entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22002 次 |
| 最近记录: |