我有一个 jar 文件,我需要用它来创建 docker 镜像。我的 jar 文件依赖于一个名为 ImageMagick 的应用程序。基本上,将安装 ImageMagick 并将图像 magick 的路径添加为环境变量。我是 Docker 的新手,根据我的理解,我认为容器只能访问容器内的资源。
所以我创建了一个 docker 文件,就这样
FROM openjdk:8
ADD target/eureka-server-1.0.0-RELEASE.jar eureka-server-
1.0.0-RELEASE.jar
EXPOSE 9991
RUN ["yum","install","ImageMagick"]
RUN ["export","imagemagix_home", "whereis ImageMagick"](Here is what am
struggling that, i need to set env variable by taking the installation
directory of imagemagick. Currently iam getting null)
ENTRYPOINT ["java","-jar","eureka-server-1.0.0-RELEASE.jar"]
请告诉我,我尝试的解决方案是否合适,或者是否有更好的解决方案来解决我的问题。
更新,
在安装应用程序并在构建时设置 env 变量时,在 -e 运行时传递参数是没有用的。我已经更新了我的 docker 文件,如下所示,
FROM openjdk:8
ADD target/eureka-server-1.0.0-RELEASE.jar eureka-server-
1.0.0-RELEASE.jar
EXPOSE 9991
RUN ["yum","install","ImageMagick"]
ENV imagemagix_home = $(whereis ImageMagick)
RUN ["wget","https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-
static.tar.xz"]
RUN ["tar","xvf","ffmpeg-git-*.tar.xz"]
RUN ["cd","./ffmpeg-git-*"]
RUN ["cp","ff*","qt-faststart","/usr/local/bin/"]
ENV ffmpeg_home = $(whereis ffmpeg)
ENTRYPOINT ["java","-jar","eureka-server-1.0.0-RELEASE.jar"]
在构建时,我收到一个错误,
OCI 运行时创建失败:conatiner_linux.go:启动容器进程导致“exec”:“\yum”:在 $PATH 中找不到可执行文件:未知。
更新
yum 在我的基础镜像包中不可用,所以我将 yum 更改为 apt-get,如下所示,
RUN apt-get install build-essential checkinstall && apt-get build-dep
imagemagick -y
现在我正在获取未找到构建必需的包,请检查安装。回 非零代码 100 请让我知道出了什么问题
最佳答案
似乎 build-essential 或 checkinstall 不可用。尝试将它们安装在单独的命令中。或者寻找他们。 在安装它们之前,您可能需要执行 apt-et update 来刷新存储库缓存。
关于linux - 在 Dockerfile 中安装软件并设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49862229/