gpt4 book ai didi

docker - Golang docker 库镜像在 $PATH 中找不到 go 工具

转载 作者:数据小太阳 更新时间:2023-10-29 03:25:01 26 4
gpt4 key购买 nike

我在 docker-library/golang#164 上开了一个问题,因为我认为这是一个错误。但是,我想我也会在 StackOverflow 上询问是否有其他人(除了项目贡献者)遇到过这个问题或有任何想法?

首先,版本号:

$ docker version
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: darwin/amd64

Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: c6d412e
Built: Fri Mar 24 00:00:50 2017
OS/Arch: linux/amd64
Experimental: true

$ docker-compose version
docker-compose version 1.11.2, build dfed245
docker-py version: 2.1.0
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016

我收到以下错误:

Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"go\": executable file not found in $PATH"

这是我的 Dockerfile:

FROM golang:1.8

WORKDIR /go/src/gigem
COPY . /go/src/gigem

RUN go build
RUN go install

CMD ["gigem"]

我也在使用 Compose(我将包含 yml,但错误发生在有/没有 compose 的情况下):

version: '3'
services:
db:
image: postgres
volumes:
- ./data:/var/lib/postgresql/data
web:
build: .
volumes:
- .:/go/src/gigem
ports:
- "3000:3000"
depends_on:
- db

我的 Go 程序中的所有内容是:

package main

import (
"fmt"
"net/http"
)

func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello Docker!")
})

fmt.Println("Running!")
fmt.Println(http.ListenAndServe("0.0.0.0:3000", nil))
}

我不太清楚为什么在 $PATH 中找不到 go。

最佳答案

根据评论,我自己测试了这段代码没有错误(不可否认,在 17.06-rc2 上,但行为不应该改变)。鉴于重启解决了这个问题,docker 内部似乎有一些损坏需要反弹来纠正(虽然很少见,但这不是我第一次看到这个)。对于以后遇到问题的其他人,我喜欢按顺序尝试以下操作:

  1. 针对图层的任何问题,在不缓存的情况下提取新图像和/或重建
  2. 重新启动 docker 以防止守护程序内部出现损坏
  3. 重新启动整个主机以解决在 docker 守护程序之外持续存在的运行时配置问题
  4. 在 dockerd 停止的情况下,删除 /var/lib/docker 这将销毁所有容器、图像和卷(因此首先备份)并开始清理

关于docker - Golang docker 库镜像在 $PATH 中找不到 go 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44447458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com