L'image di Docker si blocca a "pacman -S …"

Sto cercando di build un'image Docker dall'arch image ufficiale di Arch Linux. Queste sono le cose che ho fatto finora:

Ho PULL-ed l'image ufficiale di Arch Linux:

docker pull base/archlinux 

Ho scritto questo "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"] 

Quello che voglio è il contenitore da avviare al prompt dei comandi, in modo che possa eseguire in modalità intertriggers e albind a esso.

Ora, ottengo questo errore al momento della costruzione dell'image:

 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 

Ciò che mi confonde è che sembra che il database dei pacchetti venga aggiornato correttamente e che il sistema di base sia stato aggiornato e si blocchi quando si tenta di installare manualmente tre pacchetti.

Qualche idea?

  • Il demone Docker non si avvia dopo l'avvio su CoreOS
  • Docker - Porte esposte accessibili dall'esterno - le regole iptables ignorate
  • Multi-container docker su AWS - Nginx utilizza host / etc / hosts resolver
  • In un cluster di container come Kubernetes o Docker 1.12 Swarm, come si risolve con il DNS esterno al buon contenitore sul buon host?
  • Contenitore di linux IPv6 routable pubblicamente
  • comunicazione tra i contenitori in docker diversi da socket / network
  • One Solution collect form web for “L'image di Docker si blocca a "pacman -S …"”

    Beh, non so Arco affatto, ma se lo fai:

     RUN pacman-db-upgrade 

    E quindi eseguire questo per aggiornare i pacchetti attuali:

     RUN pacman -Syyu --noconfirm 

    Sembra ansible che tu abbia appena aggiornato il pacman e tutti gli altri strumenti che toccano il database dei pacchetti, in modo che quando esegui il tuo command pacman successivo …

     RUN pacman -S --noconfirm nodejs phantomjs cronie 

    … non riesce perché il database dei pacchetti non è stato aggiornato dagli strumenti attualmente installati. Sospetto che desideri rendere nuovamente le dichiarazioni di RUN :

     RUN pacman -Syyu --noconfirm RUN pacman-db-upgrade RUN pacman -S --noconfirm nodejs phantomjs cronie 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.