我正在为一个 Julia 项目构建一个 Docker 容器,并且在使用该项目的 Project.toml 文件时遇到了 Pkg.activate(".") 问题。这是我在做什么:
FROM julia:1.0.2 AS base
ADD src/*.jl /microservice/src/
COPY Manifest.toml /microservice/Manifest.toml
COPY Project.toml /microservice/Project.toml
COPY src/startup.jl /root/.julia/config/startup.jl
WORKDIR /microservice
RUN julia -e 'cd("/microservice")'
RUN julia -e 'using Pkg; Pkg.activate(".")'
RUN julia -e 'using Pkg; Pkg.instantiate()'
RUN julia -e 'using Pkg; Pkg.status()'
RUN julia -e 'println(Base.active_project())'
Run Code Online (Sandbox Code Playgroud)
当我使用上述 Dockerfile 代码构建容器时,我可以验证所有源代码和 .toml 文件都在容器中。调用Pkg.status()结果为:Status ~/.julia/environments/v1.0/Project.toml
并Base.active_project()导致:
/root/.julia/environments/v1.0/Project.toml
我错过了Pkg.activate(".")使用我复制到的 Project.toml的电话/microservice吗?