【发布时间】:2022-01-07 06:30:59
【问题描述】:
我已经阅读了很多关于不同语言的类似问题,它们都不是 Go。
我刚刚使用official Docker hub page 上的说明创建了一个 Dockerfile:
FROM golang:1.17.3
WORKDIR /go/src/app
COPY . .
RUN go get -d -v ./...
RUN go install -v ./...
CMD ["app"]
这是我的文件夹结构:
users-service
|-> .gitignore
|-> Dockerfile
|-> go.mod
|-> main.go
|-> README.md
如果有人需要查看一些代码,这就是我的main.go 的样子:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
- 我跑了
docker build -t users-service .:
$ docker build -t users-service .
[+] Building 5.5s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 154B 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/golang:1.17.3 3.3s
=> [auth] library/golang:pull token for registry-1.docker.io 0.0s
=> [1/5] FROM docker.io/library/golang:1.17.3@sha256:6556ce40115451e40d6afbc12658567906c9250b0fda250302dffbee9d529987 0.3s
=> [internal] load build context 0.1s
=> => transferring context: 2.05kB 0.0s
=> [2/5] WORKDIR /go/src/app 0.1s
=> [3/5] COPY . . 0.1s
=> [4/5] RUN go get -d -v ./... 0.6s
=> [5/5] RUN go install -v ./... 0.7s
=> exporting to image 0.2s
=> => exporting layers 0.1s
=> => writing image sha256:1f0e97ed123b079f80eb259dh3e34c90a48bf93e8f55629d05044fec8bfcaca6 0.0s
=> => naming to docker.io/library/users-service 0.0s
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
- 然后我跑了
docker run users-service,但我得到了那个错误:
$ docker run 用户服务
docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:启动容器进程导致:exec:“app”:$PATH 中找不到可执行文件:未知。
我记得我在 Windows 上的 Visual Studio Code 中使用 GOPATH 环境变量时遇到了一些问题,可能与此有关...有什么建议吗?
【问题讨论】:
-
可以分享一下app相关的代码吗?
-
同时添加构建命令的输出,即使看起来没问题。
-
@JinnaBalu 完成。
-
@jabbson 添加。
-
你可以使用 ./app 作为 CMD。
标签: docker go environment-variables