我正在新的GoLand IDE中与Docker一起构建一个Go项目。不幸的是,我无法正确显示我的GOROOT,使它不可能使用GoLand期货的最大值。
我有以下文件:
FROM golang:1.9.3
# allows app_env to be set during build (defaults to empty string)
ARG app_env
# sets an environment variable to app_env argument, this way the variable will persist in the container for use in code
ENV APP_ENV $app_env
COPY ./ /go/src/github.com/Name/ProjectName/
WORKDIR /go/src/github.com/Name/ProjectName/app
# install all dependencies
RUN go get ./...
# build the binary
RUN go build
# Put back once we have an application
RUN app
EXPOSE 8080我现在按照以下方式执行我的项目:
docker build -t project-name .docker run -it -v ~/project-dir:/go/src/github.com/Name/ProjectName/app但是,我无法找到如何将GoLand配置为使用我的GoRoot的Docker映像usr/local/go/bin上的路径,这在GoLand中是可能的吗?(如果不是,为什么还要增加“码头支持”?)
发布于 2018-04-29 13:58:08
截至2018.1.2,不可能使用GoLand开发在容器中有源代码的Go应用程序。您的应用程序的源代码、它的依赖项以及Go本身都需要安装在您的计算机上。
如果有人对如何改进基于Docker的开发支持有任何想法,欢迎提出建议,请参见:https://youtrack.jetbrains.com/issue/GO-3322
至于为什么还要在IDE中添加对Docker的支持呢?您可以启动容器,可以使用docker组合,以及IDE中的许多其他工具。但是,由于容器的工作方式,IDE无法从容器中获取源并推断它们。
此外,容器不应该包括最终容器中的Go源/工作区,以便对其大小和部署速度进行优化。您可以使用类似的东西来运行,但是要注意,可能需要额外的工作。
FROM golang:1.9.3 as build-env
# allows app_env to be set during build (defaults to empty string)
ARG app_env
# sets an environment variable to app_env argument, this way the variable will persist in the container for use in code
ENV APP_ENV $app_env
COPY ./ /go/src/github.com/Name/ProjectName/
WORKDIR /go/src/github.com/Name/ProjectName/app
# install all dependencies
RUN go get ./...
# build the binary
RUN go build -o /my_app
# final stage
FROM scratch
COPY --from=build-env /my_app /
# Put back once we have an application
CMD ["/my_app"]
EXPOSE 8080https://stackoverflow.com/questions/50086882
复制相似问题