在Dockerfile

时间:2018-04-16 16:37:33

标签: linux docker dockerfile

我有一个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中找不到可执行文件:unknow。

更新

yum在我的基本图片包中不可用,所以我将yum改为apt-get,如下所示,

 RUN apt-get install build-essential checkinstall && apt-get build-dep 
 imagemagick -y

现在我的包找不到build-essential,请检查安装。回 非零代码100 请让我知道什么是错的

1 个答案:

答案 0 :(得分:2)

似乎build-essential或checkinstall不可用。尝试在单独的命令中安装它们。或者搜索它们。 也许您需要先进行apt-et update来刷新存储库缓存,然后才能安装它们。