我有一个AWS Code管道,目前可以成功地将代码部署到我的EC2实例中。
我有一个Docker映像,该映像具有运行我的代码所必需的设置,下面提供了Dockerfile。当我运行docker run -t
时,它只是在docker上加载了一个交互式shell,然后挂在任何命令(例如ls)上
有什么建议吗?
FROM continuumio/anaconda2
RUN apt-get install git
ENV PYTHONPATH /app/phdcode/panaxeaA1
# setting up venv
RUN conda create --name panaxea -y
RUN /bin/bash -c "source activate panaxea"
# Installing necessary packages
RUN conda install -c guyer pysparse
RUN conda install -c conda-forge pympler
RUN pip install pysparse
RUN git clone https://github.com/usnistgov/fipy.git
RUN cd fipy && python setup.py install
RUN cd ~
WORKDIR /app
COPY . /app
RUN cd panaxeaA1/models/alpha04c/launchers
RUN echo "launching..."
CMD python launcher_260818_aws.py
答案 0 :(得分:0)
docker run -t
只需通过pseuodo-tty连接到容器的stdin来启动docker容器。但是,仅运行此命令不会建立与容器的交互式外壳。您将需要此文件才能在容器中运行命令。
您还需要将-i
命令行标志与您要使用的shell一起附加。例如,docker run -it IMAGE_NAME bash
将使用bash作为交互式shell从您提供的图像中启动一个容器。然后,您可以像往常一样运行Bash命令。
如果您正在寻找一种在AWS的EC2实例上运行容器的简单方法,我强烈建议您选择AWS EC2 Container Service (ECS)。它是运行容器的非常简单的服务,可以抽象和管理运行容器中涉及的许多服务器级别的工作。