2016-04-03 207 views
1

我使用Ubuntu碼頭工人形象:ubuntu:14.04泊塢窗 - Mac OSX版的Ubuntu上失敗apt-get的更新

我想用更新我的樹:

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

他們都不能解決問題。

任何想法如何忽略此錯誤並繼續構建容器?

UPDATE:

這就是我的全部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"] 
+0

你能發佈你的整個Dockerfile嗎?它對我有用:'FROM ubuntu:14.04 RUN apt-get update' –

+0

你檢查過你的'ubuntu:14.04'圖像是否是最新的?嘗試做'docker pull ubuntu:14.04',以確保 – thaJeztah

+0

@WaleryStrauch我把它添加到我的問題 –

回答

1

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

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

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

+0

這件事情還在我身上發生..我只是redownloaded ubuntu14.04,但我仍然收到'W:GPG錯誤:http://存檔.ubuntu.com trusty版本:以下簽名無法驗證,因爲公鑰不可用:NO_PUBKEY 16126D3A3E5C1192 W:無法獲取http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-amd64/Packages Hash Sum不匹配 E:某些索引文件未能下載。他們被忽略了,或者用舊的代替。「 –

+0

你是(企業)代理的背後嗎? – thaJeztah

+0

沒有..我的個人mac –

-1

嘗試在dockerfile RUN apt-get update之前,補充一點:

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

這不應該需要; 'apt-get update'應該可以開箱即用,如果不是的話,有什麼不對的 – thaJeztah