【发布时间】:2019-02-08 21:15:57
【问题描述】:
我正在尝试构建一个 docker 映像,入口点可以在其中运行而不会出现错误:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/app\": permission denied": unknown.
我的操作系统:Windows 10
Dockerfile 内容:
ARG GO_VERSION=1.11
FROM golang:${GO_VERSION}-alpine AS builder
RUN mkdir /user && \
echo 'nobody:x:65534:65534:nobody:/:' > /user/passwd && \
echo 'nobody:x:65534:' > /user/group
RUN apk add --no-cache ca-certificates
ENV CGO_ENABLED=0 GOFLAGS=-mod=vendor
WORKDIR $GOPATH/src/XXXXmyrepoXXXX
COPY ./ ./
RUN go build \
-installsuffix 'static' \
-o /app .
FROM scratch AS final
COPY --from=builder /user/group /user/passwd /etc/
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /app /app
EXPOSE 8080
USER nobody:nobody
ENTRYPOINT ["/app"]
我应该如何更改 Dockerfile,它应该可以像这里 https://medium.com/@pierreprinetti/the-go-1-11-dockerfile-a3218319d191 一样工作?实际上没有任何变化。
【问题讨论】:
-
如果你使用
USER root会发生什么 -
“AS final”镜像中不存在用户root:
docker: Error response from daemon: linux spec user: unable to find user root: no matching entries in passwd file.
标签: dockerfile permission-denied