Сборка изображения докера зависает в “pacman-S …”

Я пытаюсь создать изображение Докера из официальной Дуги изображение Linux. Это вещи, которые я сделал до сих пор:

Я ВЫТЯНУЛ официальную Дугу Изображение Linux:

docker pull base/archlinux

Я записал этот "Dockerfile":

# Set base image
FROM base/archlinux:latest

# Fix mirrorlist file
#RUN rm /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist

# Update pacman and install packages
RUN pacman-db-upgrade
RUN pacman -Syyu --noconfirm
RUN pacman -S --noconfirm nodejs phantomjs cronie

# Make cronjobs
RUN echo "*/2 * * * *   node /srv/visitor/visitor.js" >> mycronjobs
RUN echo "*/5 * * * *   killall -older-than 5m phantomjs" >> mycronjobs
RUN echo "0 0 * * *     rm /srv/visitor/visitor-info.log" >> mycronjobs
RUN crontab mycronjobs
RUN rm mycronjobs

# Fix hosts file
RUN echo "192.92.13.243 www.lololol.gr"

# Copy app code
COPY . /srv/visitor

# Install app dependencies
RUN cd /srv/visitor
RUN npm install

EXPOSE 80
CMD ["/bin/bash"]

То, что я хочу, является контейнером для запуска в командной строке, так, чтобы я мог работать в в интерактивном режиме и присоединить к нему.

Теперь, я получаю эту ошибку во время создания изображения:

Step 3 : RUN pacman -S --noconfirm nodejs phantomjs cronie
 ---> Running in 30870b31aed6
error: failed to initialize alpm library
(database is incorrect version: /var/lib/pacman/)
error:   try running pacman-db-upgrade
INFO[0127] The command [/bin/sh -c pacman -S --noconfirm nodejs phantomjs cronie] returned a non-zero code: 255

То, что смущает меня, - то, что похоже, что база данных пакета обновляется правильно, и основная система, обновленная, и это зависает при попытке установить три пакета вручную.

Какие-либо идеи?

5
задан 6 February 2015 в 17:21
1 ответ

Я вообще не знаю Arch, но если вы сделаете это:

RUN pacman-db-upgrade

А затем запустите это, чтобы обновить ваши текущие пакеты:

RUN pacman -Syyu --noconfirm

Возможно, вы только что обновил pacman и любые другие инструменты, которые касаются базы данных пакетов, так что при запуске следующей команды pacman ...

RUN pacman -S --noconfirm nodejs phantomjs cronie

... она не сработает, потому что база данных пакетов содержит не обновлялись с помощью установленных на данный момент инструментов. Я подозреваю, что вы хотите изменить порядок этих операторов RUN :

RUN pacman -Syyu --noconfirm
RUN pacman-db-upgrade
RUN pacman -S --noconfirm nodejs phantomjs cronie
3
ответ дан 3 December 2019 в 01:50

Теги

Похожие вопросы