gpt4 book ai didi

linux - 在 Dockerfile 中安装软件并设置环境变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:26 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com