jad*_*joe 7 go docker alpine-linux
当我尝试使用 docker 构建 golang 时
docker的镜像构建成功,但是使用docker run运行时出现如下错误
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/app\": permission denied": unknown.
Run Code Online (Sandbox Code Playgroud)
我认为这个错误导致没有添加用户,所以我添加了组和用户,如下所示
RUN groupadd -g 10001 myapp \
&& useradd -u 10001 -g myapp myapp
Run Code Online (Sandbox Code Playgroud)
但没有修复。
这是我的源 docker 文件
FROM golang:1.12.9 as builder
ADD . /go/src/appname/
WORKDIR /go/src/appname/
ENV GO111MODULE=on
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build target=prod
FROM alpine
RUN apk update \
&& apk add --no-cache
COPY --from=builder /go/src/ /app
ENTRYPOINT [ "/app" ]
Run Code Online (Sandbox Code Playgroud)
谢谢
您将在此步骤中将整个源文件夹复制到目录中/app:
COPY --from=builder /go/src/ /app
Run Code Online (Sandbox Code Playgroud)
然后你尝试执行该目录:
ENTRYPOINT [ "/app" ]
Run Code Online (Sandbox Code Playgroud)
相反,您需要复制 go build 在复制步骤中输出的已编译二进制文件。
| 归档时间: |
|
| 查看次数: |
14268 次 |
| 最近记录: |