我正在尝试创建在Go中开发的应用程序的docker镜像。我有一个名为myapp的二进制文件,如果我执行它然后它正常工作,我执行它:
@-webkit-keyframes kanan {
0% {-webkit-transform:translateX(20px);
}
50%{-webkit-transform:translateX(-20px);
}
100%{-webkit-transform:translateX(20px);
z-index:200;
}
}
@-webkit-keyframes kiri {
0% {-webkit-transform:translateX(-20px);
z-index:200;
}
50%{-webkit-transform:translateX(20px);
}
100%{-webkit-transform:translateX(-20px);
}
}
然后,取出那个bin并将其单独放在一个名为./myapp
的目录中,然后放入这个dockerfile:
mydirectory
然后输入以下命令创建docker镜像:
# iron/go is the alpine image with only ca-certificates added
FROM iron/go
WORKDIR /
# Now just add the binary
ADD myapp /
ENTRYPOINT ["./myapp"]
然后,当我运行图像时,我收到此消息:
docker build -t myDockerHubUser/myapp .
这是什么意思?我找到了一些与相同消息相关的帖子,但问题是我的bnary正确执行没有任何问题
答案 0 :(得分:5)
你最有可能:
您可以使用CGO_ENABLED=0
静态构建二进制文件。
答案 1 :(得分:0)
在container / myfile中没有执行权限。你必须在dockerfile中做一个chmod + x / myfile。只需在ENTRYPOINT行之前添加以下语句。
运行chmod + x / myfile
答案 2 :(得分:0)
你必须在你的机器中构建docker内的二进制文件。
FROM golang
ADD ./ /go/src/app
WORKDIR /go/src/app
RUN go get ./
RUN go build
CMD app