Я пытаюсь создать изображение Докера из официальной Дуги изображение 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
То, что смущает меня, - то, что похоже, что база данных пакета обновляется правильно, и основная система, обновленная, и это зависает при попытке установить три пакета вручную.
Какие-либо идеи?
Я вообще не знаю 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