Django Docker-在Windows主机上运行bash脚本
我用Docker设置了一个django项目,它有两个容器,一个用于Django Docker-在Windows主机上运行bash脚本,django,bash,perl,docker,Django,Bash,Perl,Docker,我用Docker设置了一个django项目,它有两个容器,一个用于django服务器,一个用于postgres服务器。我还希望能够为这个项目运行bash脚本和perl脚本,例如,我需要使用bash脚本从实时站点自动下载和恢复数据库转储。我是否为每个bash脚本设置新的Docker映像?或者我需要设置一个Ubuntu容器并通过它运行bash脚本 以下是Dockerfile: FROM python:3.5 ENV PYTHONBUFFERED 1 ENV APPLICATION_ROOT /ap
django
服务器,一个用于postgres
服务器。我还希望能够为这个项目运行bash脚本和perl脚本,例如,我需要使用bash脚本从实时站点自动下载和恢复数据库转储。我是否为每个bash脚本设置新的Docker映像?或者我需要设置一个Ubuntu容器并通过它运行bash脚本
以下是Dockerfile:
FROM python:3.5
ENV PYTHONBUFFERED 1
ENV APPLICATION_ROOT /app/
ENV APP_ENVIRONMENT L
COMPOSE_CONVERT_WINDOWS_PATHS=1
RUN mkdir -p $APPLICATION_ROOT
WORKDIR $APPLICATION_ROOT
ADD requirements.txt $APPLICATION_ROOT
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . $APPLICATION_ROOT
和docker compose文件:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8998:8998"
links:
- db
db:
image: postgres:9.4
environment:
APP_ENVIRONMENT: L
POSTGRES_USER: postgres
POSTGRES_PASSWORD: root
POSTGRES_DB: mydb
我是Docker的新手,所以还不知道做事情的最佳方法。我将把bash脚本和新docker文件放在哪里,如何将其链接到此项目,以便在项目运行时执行脚本?有几种方法可以做到这一点,我可以创建一个bash容器,并使用它来运行脚本。或者我可以在bash映像上创建一个容器,其中包含我需要的所有脚本,或者我可以为每个脚本创建一个容器。我可能需要在这些bash脚本旁边运行
perl
或awk
或expect
,因此,在这种情况下,我是否只需将每个脚本的图像导入容器 有些概念你搞错了:
ADD
或COPY
将脚本设置到容器中,然后使用CMD
执行脚本。这将在容器内执行它,因此将影响其状态。有关如何使用这些命令的详细信息,请查看另外,由于您似乎在理解整个容器体系结构时遇到了一些困难,我建议您看看入门文档。