我正在 GO 上构建我的应用程序,但由于某种原因没有上传配置文件
FROM golang:latest
WORKDIR app
COPY task-manager .
RUN go mod download
RUN go build TaskManager/cmd/main
VOLUME /root/envs_dev/.env /go/app/.env
CMD ["./main"]
文件已经到位,他亲自将其转移到那里并检查了
root@test-asup-dev-devops:~/envs_dev# ls -lha
total 12K
drwxr-xr-x 2 root root 4.0K Mar 9 14:35 .
drwx------ 7 root root 4.0K Mar 9 15:15 ..
-rw-r--r-- 1 root root 378 Mar 9 14:35 .env
容器产生以下日志:
panic: config file parsing error: read /go/app/.env: is a directory
goroutine 1 [running]:
TaskManager/pkg/configuration.init.0()
/go/app/pkg/configuration/configuration.go:41 +0x92
在 Dockerfile 文档中
滥用指示
该指令不挂载任何东西,而只是创建一个挂载点(目录)并标记我们将从外部加载数据。
在你的例子中,创建了两个目录,但这不是我们想要的。
需要从 Dockerfile 中删除 VOLUME 指令。
您需要在启动容器时或通过文章中所述的 docker-compose 挂载 .env 文件。