Docker镜像构build挂在“pacman -S …”

我正在试图从官方的Arch Linux镜像中构build一个Docker镜像。 这些是我迄今为止所做的事情:

我推出了官方的Arch Linux Image:

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"] 

我想要的是在命令提示符处启动的容器,以便我可以以交互模式运行并附加到它。

现在,在构build图像时出现这个错误:

 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