kaniko docker 构建:找不到命令
kaniko docker build: can't find command
新手 kaniko,并尝试在 ubuntu docker 主机中构建 docker 图像。
我有本地 Dockerfile
和 main.go
应用程序
# Dockefile
FROM golang:1.10.3-alpine AS build
ADD . /src
RUN cd /src && go build -o app
FROM alpine
WORKDIR /app
COPY --from=build /src/app /app/
CMD [ "./app" ]
#main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
并且在命令行中,我 运行
docker run -it -v $(pwd):/usr \
gcr.io/kaniko-project/executor:latest \
--dockerfile=Dockerfile --context=/usr --no-push
不幸的是,我得到如下错误
...
INFO[0006] Skipping paths under /proc, as it is a whitelisted directory
INFO[0006] Using files from context: [/usr]
INFO[0006] ADD . /src
INFO[0006] Taking snapshot of files...
INFO[0006] RUN cd /src && go build -o app
INFO[0006] cmd: /bin/sh
INFO[0006] args: [-c cd /src && go build -o app]
/bin/sh: go: not found
error building image: error building stage: waiting for process to exit: exit status 127
怎么了? (docker 版本 18.09.0)
您需要为 kaniko 中的上下文使用不同的路径。您对 运行 此构建的命令应如下所示:
docker run -it -v $(pwd):/context \
gcr.io/kaniko-project/executor:latest \
--dockerfile=Dockerfile --context=/context --no-push
在您使用 /usr
作为上下文 kaniko 的命令中,在所有 Dockerfile 和 golang 图像中覆盖此路径,go
位于 /usr
路径中,这就是它不能的原因然后找到它
# which go
/usr/local/go/bin/go
新手 kaniko,并尝试在 ubuntu docker 主机中构建 docker 图像。
我有本地 Dockerfile
和 main.go
应用程序
# Dockefile
FROM golang:1.10.3-alpine AS build
ADD . /src
RUN cd /src && go build -o app
FROM alpine
WORKDIR /app
COPY --from=build /src/app /app/
CMD [ "./app" ]
#main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
并且在命令行中,我 运行
docker run -it -v $(pwd):/usr \
gcr.io/kaniko-project/executor:latest \
--dockerfile=Dockerfile --context=/usr --no-push
不幸的是,我得到如下错误
...
INFO[0006] Skipping paths under /proc, as it is a whitelisted directory
INFO[0006] Using files from context: [/usr]
INFO[0006] ADD . /src
INFO[0006] Taking snapshot of files...
INFO[0006] RUN cd /src && go build -o app
INFO[0006] cmd: /bin/sh
INFO[0006] args: [-c cd /src && go build -o app]
/bin/sh: go: not found
error building image: error building stage: waiting for process to exit: exit status 127
怎么了? (docker 版本 18.09.0)
您需要为 kaniko 中的上下文使用不同的路径。您对 运行 此构建的命令应如下所示:
docker run -it -v $(pwd):/context \
gcr.io/kaniko-project/executor:latest \
--dockerfile=Dockerfile --context=/context --no-push
在您使用 /usr
作为上下文 kaniko 的命令中,在所有 Dockerfile 和 golang 图像中覆盖此路径,go
位于 /usr
路径中,这就是它不能的原因然后找到它
# which go
/usr/local/go/bin/go