Amazon ec2 Docker映像在不同的机器上表现不同

Amazon ec2 Docker映像在不同的机器上表现不同,amazon-ec2,docker,dockerfile,Amazon Ec2,Docker,Dockerfile,我生成了一个Docker映像,它在不同的机器上表现不同。我认为Docker做不到的事。但让我解释一下: 我的计划是生成一个基于Dash的Docker映像,并将其上载到ec2实例,然后在那里启动它 在Dockerfile(见下文)中,我创建了一个新的dashing实例,它在jobs子文件夹中创建了一些作业(例如twitter.rb)。之后,我删除了jobs文件夹并再次创建它,以删除所有默认的jobs 当我在本地机器上运行映像时(带有Docker Toolbox 1.8.3的OS X),我可以看到默

我生成了一个Docker映像,它在不同的机器上表现不同。我认为Docker做不到的事。但让我解释一下:

我的计划是生成一个基于Dash的Docker映像,并将其上载到ec2实例,然后在那里启动它

在Dockerfile(见下文)中,我创建了一个新的dashing实例,它在jobs子文件夹中创建了一些作业(例如twitter.rb)。之后,我删除了jobs文件夹并再次创建它,以删除所有默认的jobs

当我在本地机器上运行映像时(带有Docker Toolbox 1.8.3的OS X),我可以看到默认作业已被删除(如预期的那样)。在我同事的机器上(使用Docker 1.7.1的Ubuntu),它的工作方式与预期的一样。但是在ec2机器上(使用Docker 1.7.1修改AmazonAMI),我可以在jobs子文件夹中看到默认作业,以及我在Dockerfile末尾添加的作业

有人知道问题出在哪里吗?或者至少给我一些提示如何继续

# Build script where 1 is my version
docker build -t dashboard:1 .
docker save -o dashboard.tar dashboard:1

# On the ec2 machine 
docker load -i dashboard.tar
docker run -t dashboard:1 dashing start
这是我的Dockerfile:

FROM ruby

RUN apt-get update && \
    apt-get -y install npm && \
    apt-get -y install nodejs && \
    gem install dashing && \
    gem install bundle

# Creates default jobs like jobs/twitter.rb
RUN mkdir /dashing && \
    dashing new dashing && \
    cd /dashing && bundle

WORKDIR /dashing

# Clean default jobs and re-create the folder
RUN rm -rf jobs && mkdir jobs && \
    rm -rf dashboards && mkdir dashboards && \
    rm -rf widgets && mkdir widgets && \
    rm -rf public && mkdir public

# Add jobs from current repository
ADD jobs /dashing/jobs
ADD config/config.ru /dashing/config.ru
ADD dashboards /dashing/dashboards
ADD widgets /dashing/widgets
ADD public /dashing/public

# Run Bundle in a cache efficient way
WORKDIR /tmp
ADD config/Gemfile /tmp/
ADD config/Gemfile.lock /tmp/
RUN bundle install

WORKDIR /dashing

CMD ["dashing start"]

值得一提的是,如果您仍然存在此问题,那么在创建文件夹时,这似乎是一个“默认umask”问题。运行脚本的“用户”必须位于对作业目录和作业目录上方的目录至少具有“rw”(读/写)权限的组中,才能将其删除-听起来您在云设置中没有此权限(但显然您会在自己的框中!)

(更多细节和功劳归于)