构建发行版的Ubuntu Docker容器的问题

问题描述 投票:1回答:1

我正在尝试为this module构建一个Docker容器。主要思想是我正在尝试尽可能多地使用Ubuntu提供的软件包来避免问题。我还使用了容器随附的默认perl,显然是5.22。

这是Dockerfile:

FROM ubuntu:16.04
LABEL version="1.0" maintainer="JJ Merelo <[email protected]>" perl5version="5.22"

ADD data/* ./
ADD . .
RUN mkdir /test \
    && apt-get update \
    && apt-get install -y build-essential curl hunspell-en-us libtext-hunspell-perl myspell-es libencode-perl cpanminus libfile-slurp-tiny-perl libversion-perl\
    && curl https://raw.githubusercontent.com/SublimeText/Dictionaries/master/Spanish.dic -o Spanish.dic

RUN cpanm .
RUN perl --version
VOLUME /test
WORKDIR /test

# Will run this
ENTRYPOINT prove

它在本地构建而没有问题(使用Docker version 17.05.0-ce, build 89658be)。但是,由于this problem

,它在Docker Hub中不起作用
/etc/ssl/certs/AddTrust_Low-Value_Services_Root.pem is encountered a second time at /usr/share/perl/5.22/File/Find.pm line 79.

似乎发生在我perl Makefile.PL && make install所在的行中>

我真的不知道这可能是什么原因,为什么它在本地无法运行而失败。有什么主意吗?

我正在尝试为此模块构建一个Docker容器。主要思想是我正在尝试尽可能多地使用Ubuntu提供的软件包来避免问题。我还使用了默认的perl ...

docker perl dockerfile
1个回答
1
投票

我认为问题是您WORKDIR /test做得太迟了。在Dockerfile的开头执行ADD . .,这会将所有文件从本地文件系统的当前目录复制到映像的根目录。问题在于图像根目录中已经存在的目录之间可能存在冲突,例如/lib。试试像这样的东西:

© www.soinside.com 2019 - 2024. All rights reserved.