Estou tentando construir uma imagem do Docker a partir da imagem oficial do Arch Linux. Estas são as coisas que fiz até agora:
Eu PULL-ed a imagem oficial do Arch Linux:
docker pull base/archlinux
Eu escrevi este "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"]
O que eu quero é que o contêiner inicie no prompt de comando, para que eu possa executar no modo interativo e anexar a ele.
Agora, recebo este erro no momento da construção da imagem:
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
O que me confunde é que parece que o banco de dados do pacote foi atualizado corretamente e o sistema básico foi atualizado e ele trava ao tentar instalar três pacotes manualmente.
Alguma ideia?
Bem, eu não conheço o Arch, mas se você fizer isso:
E então execute isso para atualizar seus pacotes atuais:
Parece possível que você tenha acabado de atualizar
pacman
e quaisquer outras ferramentas que tocam no banco de dados do pacote, para que quando você executar seu próximopacman
comando......falha porque o banco de dados do pacote não foi atualizado pelas ferramentas atualmente instaladas. Suspeito que você queira reordenar essas
RUN
declarações: