创建dockerfile来编译源代码

jhkqcmku  于 12个月前  发布在  Docker
关注(0)|答案(2)|浏览(133)

我尝试遵循下面提到的两个步骤:
1)下载的源代码
https://sourceforge.net/projects/hunspell/files/Hyphen/2.8/hyphen-2.8.8.tar.gz/download
2)编译它,你会得到二进制命名的例子:
hyphen-2.8.8$ ./example/dev/smc/hyphenation/hi_IN/hyph_hi_IN. dic ~/hi_sample.text
我已经下载并解压缩了tar文件。我的问题是如何创建一个dockerfile来自动化这个过程?
只涉及3个命令:

./configure
make all-recursive
make install

我可以选择官方的python镜像作为基本容器。但是如何在docker文件中编写命令呢?

yftpprvb

yftpprvb1#

你可以使用RUN命令:

FROM python:<version number here>

RUN ./configure && make-recursive && make install

CMD ['<some command here>']

<some command here>的用法取决于图像的用途。请记住,Docker容器只在该命令执行时运行,因此如果您将configure/make/install步骤放入脚本中并将其用作入口点,它将构建您的程序,然后容器将停止。
您还需要将下载的文件放入容器中。这可以使用COPYADD指令(当然在RUN之前)来完成。如果您在本地保存了tar.gz文件,那么ADD会将该文件复制到容器 * 中,并自动将其展开到目录中。COPY不会扩展它,所以如果你这样做,你需要添加一个tar -zxvf或类似的RUN
如果你想直接将文件下载到容器中,可以用ADD <source URL>来完成,但是在这种情况下,它不会扩展它,所以你必须在RUN中完成。COPY不允许从URL进行源代码。This post更详细地解释了COPYADD

x4shl7ld

x4shl7ld2#

您可以在shell脚本中使用这三个命令,然后使用以下docker命令

COPY ./<path to your script>/<script-name>.sh /
ENTRYPOINT ["/<script-name>.sh"]
CMD ["run"]

作为参考,你可以创建你的docker文件,就像他们为我在Apache ActiveMQ Artemis上工作的一个项目创建的一样:https://github.com/apache/activemq-artemis/blob/master/artemis-docker/Dockerfile-ubuntu

相关问题