Проблемы со сборкой Docker-контейнера Ubuntu для дистрибутива - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь построить контейнер Docker для этого модуля . Основная идея заключается в том, что я стараюсь максимально использовать пакеты, предоставляемые Ubuntu, чтобы избежать проблем;Я также использую стандартный perl, который поставляется с контейнером, который, по-видимому, равен 5.22.

Это Dockerfile:

FROM ubuntu:16.04
LABEL version="1.0" maintainer="JJ Merelo <jjmerelo@GMail.com>" 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). Тем не менее, он не работает в Docker-хабе из-за этой проблемы

/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

у меня действительно естьПонятия не имею, что может быть причиной этого, почему он работает локально и не работает там. Есть идеи?

1 Ответ

1 голос
/ 04 ноября 2019

Я думаю, проблема в том, что вы делаете WORKDIR /test слишком поздно. В начале Dockerfile вы делаете ADD . ., это скопирует все файлы из текущего каталога вашей локальной файловой системы в корневой каталог образа. Проблема в том, что могут быть конфликты между каталогами, уже присутствующими в корне образа, например /lib. Попробуйте вместо этого что-то вроде этого:

FROM ubuntu:16.04
LABEL version="1.0" maintainer="JJ Merelo <jjmerelo@GMail.com>" perl5version="5.22"

WORKDIR /test
ADD data/* ./
ADD . .
RUN 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 perl --version
RUN cpanm Test::More
RUN cpanm .
VOLUME /test

# Will run this
ENTRYPOINT prove
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...