当我尝试使用 docker 启动 go 应用程序时遇到一些麻烦。ERROR: for app Cannot start service app: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"./main\": permission denied": unknown
当我尝试做时就会发生docker-compose up
这是我的多阶段 Dockerfile:
# Dockerfile References: https://docs.docker.com/engine/reference/builder/
# Start from the latest golang base image
FROM golang:1.13 as builder
# Set the Current Working Directory inside the container
WORKDIR /memesbot
# Copy go mod and sum files
COPY go.mod go.sum ./
# Download all dependencies. Dependencies will be cached if the go.mod and go.sum files are not changed
RUN go mod download
# Copy the source from the current directory to the Working Directory inside the container
COPY . .
# Build the Go app
RUN go build -o /memesbot/cmd/main .
######## Start a new stage from scratch #######
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
# Copy the Pre-built binary file from the previous stage
COPY --from=builder /memesbot/cmd/main .
# Command to run the executable
CMD ["./main"]
和 docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "7777:7777"
environment:
TELEGRAM_TOKEN: xxxyyy
有人知道我该如何解决这个问题吗?
设置可执行文件的权限,它应该可以工作。
RUN chmod +x ./main
# Command to run the executable
CMD ["./main"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)