相同的dockerfiles给出不同的行为

时间:2014-02-18 04:15:54

标签: docker

我正在使用以下来自(http://txt.fliglio.com/2013/11/creating-a-mysql-docker-container/)的dockerfile:

  

来自ubuntu

     

RUN dpkg-divert --local --rename --add / sbin / initctl

     

运行ln -s / bin / true / sbin / initctl

     

RUN echo“deb http://archive.ubuntu.com/ubuntu精确主要宇宙”>的/etc/apt/sources.list

     

运行apt-get update

     

运行apt-get upgrade -y

     

运行apt-get -y安装mysql-client mysql-server

     

运行sed -i -e“s / ^ bind-address \ s * = \ s * 127.0.0.1 / bind-address = 0.0.0.0/”   /etc/mysql/my.cnf

     

ADD ./startup.sh /opt/startup.sh

     

EXPOSE 3305

     

CMD [“/ bin / bash”,“/ opt / startup.sh”]

当我在本地计算机上构建Docker版本0.8时,这没有错误。

我一直在尝试使用可信赖的构建: https://index.docker.io/u/hardingnj/sqlcontainer/

然而在docker服务器上,我遇到第二个RUN命令的错误:

  

[91mln:无法创建符号链接`/ sbin / initctl':文件存在

     

[0米

     

错误:build:命令[/ bin / sh -c ln -s / bin / true / sbin / initctl]返回非零代码:1

我认为Dockerfiles应该独立于上下文工作?也许我提到的ubuntu版本不一样?

1 个答案:

答案 0 :(得分:2)

ubuntu图像的版本可能不同。为了非常精确,您可以在FROM语句中提供所需的完整图像ID,例如

# This is the id of the current Ubuntu 13.10 image.
# The tag could move to a different image at a later time.
FROM 9f676bd305a43a931a8d98b13e5840ffbebcd908370765373315926024c7c35e
RUN dpkg-divert --local --rename --add /sbin/initctl
...