Docker容器不会反映除创建之外的计算机上的更改

时间:2015-05-02 11:46:40

标签: docker virtualenv dockerfile

所以我有一个Dockerfile,使用它创建一个图像。 Dockerfile中的指令是:

#This is a docker file

FROM ubuntu:14.04
MAINTAINER amit 

# Install python-pip
RUN apt-get update && apt-get install -y python-pip

# Install virtual-env
RUN mkdir ~/.virtualenvs

RUN pip install virtualenv

RUN pip install virtualenvwrapper

RUN touch ~/.bashrc

RUN echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc

RUN echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh &&  mkvirtualenv be"

# INSTALL REQUIRED PACKAGES
RUN apt-get update && apt-get install -y \
    xclip \
    python-dev \
    libffi-dev \
    libpam0g-dev \
    sqlite3 \
    libsqlite3-dev \
    subversion \
    g++ \
    libxslt1-dev \
    libxml2-dev \
    zlib1g-dev \
    swig \
    node \
    git \
    libssl-dev

# Expose port
EXPOSE 5000


# Get the source  ideally one should do a get on source release
COPY src /src

WORKDIR /src

RUN touch installer.sh

RUN echo "#!/bin/bash" >> installer.sh

RUN echo "source `which virtualenvwrapper.sh`" >> installer.sh

RUN echo "workon be" >> installer.sh

RUN echo "./tools/install_dependencies" >> installer.sh

RUN echo "deactivate be" >> installer.sh

RUN chmod +x installer.sh

现在我从中构建一个图像。我通过运行docker容器来执行installer.sh,一切都很好。

但是当有人从存储库中提取这个图像并运行文件installer.sh时,会出现一个错误,指出virtualenv不存在然后就必须做" mkvirtualenv be"再来一次。 这有什么不对?不应该" virtualenv be"自动出现在容器中?

0 个答案:

没有答案