簡體   English   中英

Docker - Mac OSX Ubuntu 在 apt-get 更新時失敗

[英]Docker - Mac OSX Ubuntu fails on apt-get update

我正在使用 Ubuntu Docker 鏡像: ubuntu:14.04

我想使用以下方法更新我的樹:

RUN apt-get  update

但我不斷收到此錯誤:

W: GPG error: http://archive.ubuntu.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-amd64/Packages  Hash Sum mismatch

E: Some index files failed to download. They have been ignored, or old ones used instead.

我嘗試了幾種方法,包括apt-get cleanRUN rm -R /var/lib/apt/lists/* -vf

它們都不能解決問題。

知道如何忽略此錯誤並繼續構建容器嗎?

更新:

這是我的完整 Dockerfile:

FROM ubuntu:14.04

VOLUME ["/var/www"]

RUN apt-get update
RUN apt-get upgrade -y

RUN apt-get install -y --force-yes redis-tools git nano curl sendmail openssh-server apache2 supervisor php5 php5-curl php5-cli libapache2-mod-php5 php5-gd php5-json php5-ldap php5-mysql php5-pgsql php5-mcrypt php5-xdebug
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor

RUN useradd ubuntu -d /home/ubuntu
RUN usermod -a -G sudo ubuntu
RUN mkdir -p /home/ubuntu/.ssh
RUN chmod 700 /home/ubuntu/.ssh
RUN chown ubuntu:ubuntu /home/ubuntu/.ssh

ADD apache_default /etc/apache2/sites-available/000-default.conf
RUN a2enmod rewrite
RUN php5enmod mcrypt
RUN sed -ri 's/^display_errors\s*=\s*Off/display_errors = On/g' /etc/php5/apache2/php.ini
RUN sed -ri 's/^display_errors\s*=\s*Off/display_errors = On/g' /etc/php5/cli/php.ini
RUN sed -ri 's/^PermitRootLogin.*$/PermitRootLogin yes/g' /etc/ssh/sshd_config

#Add XDEBUG
RUN echo "[xdebug]" >> /etc/php5/apache2/php.ini
RUN echo "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.remote_enable=1" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.remote_port=9000" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.show_local_vars=0" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.var_display_max_data=10000" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.var_display_max_depth=20" >> /etc/php5/apache2/php.ini
RUN echo "xdebug.show_exception_trace=0" >> /etc/php5/apache2/php.ini

#Allow SSH Root
ADD sshd_config /etc/ssh/sshd_config
RUN service ssh reload
RUN service ssh restart

#Install Composer
RUN curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer


ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ADD run /usr/local/bin/
RUN chmod +x /usr/local/bin/run
EXPOSE 22 80
CMD ["/usr/local/bin/run"]

就我而言,這是由於我的 mac 上的屏幕時間。 (為什么 tf 在 MacOS 安裝時自動啟用??)。 無論如何,前往設置,找到屏幕時間,然后禁用該死的東西。 希望這可以幫助一些可憐的 Mac 用戶損失很多小時。

您的圖像緩存中可能有一個過時的Ubuntu版本。 運行docker pull ubuntu:14.04以確保您具有最新版本。

apt-get update應該開箱即用; 如果它無法正常工作,則說明存在其他問題(可能是緩存鏡像已過期,或代理服務器引起了問題)。

另外,要在構建期間跳過docker的緩存機制,可以使用--no-cache選項; docker build --no-cache .

我最近遇到了同樣的問題,我解決了禁用 iCloud Private Relay 的問題。

似乎與這個問題有關

嘗試在dockerfile中的RUN apt-get update之前添加它:

RUN gpg --keyserver subkeys.pgp.net --recv 16126D3A3E5C1192
RUN gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add -

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM