Я хочу создать контейнер, содержащий два пакета Python и пакет с исполняемым файлом.
Это дерево моего основного пакета (dockerized_packeg):
dockerized_project
├── docker-compose.yml
├── Dockerfile
├── exec_project
│ ├── config
│ │ └── config.json
│ ├── config.json
│ ├── gowebapp
├── pythonic_project1
│ ├── __main__.py
│ ├── requirements.txt
│ ├── start.sh
│ └── utility
│ └── utility.py
└── pythonic_project2
├── collect
│ ├── collector.py
├── __main__.py
├── requirements.txt
└── start.sh
Содержимое Dockerfile:
FROM ubuntu:18.04
MAINTAINER Benyamin Jafari <benyamin@infravision.ir>
ENV PYTHONUNBUFFERED 1
RUN apt update
RUN apt-get install -y python3.6 python3-pip python3-dev build-essential gcc \
libsnmp-dev snmp-mibs-downloader
RUN pip3 install --upgrade pip
RUN mkdir /app
WORKDIR /app
COPY . /app
WORKDIR /app/snmp_collector
RUN pip3 install -r requirements.txt
WORKDIR /app/proto_conversion
RUN pip3 install -r requirements.txt
WORKDIR /app/pythonic_project1
CMD python3 __main__.py
WORKDIR /app/pythonic_project2
CMD python3 __main__.py
WORKDIR /app/exec_project
CMD ["./gowebapp"]
Содержимое Docker-compose:
version: '3'
services:
proto_conversion:
build: .
image: pc:2.0.0
container_name: proto_conversion
# command:
# - "bash snmp_collector/start.sh"
# - "bash proto_conversion/start.sh"
restart: unless-stopped
ports:
- 8008:8008
tty: true
Проблема:
Когда я запускаю этот проектс docker-compose up --build
выполняется только последняя команда CMD
, и я думаю, что предыдущие CMD
команды в Dockerfile
будут убиты, потому что, когда я прокомментировал две последние CMD
, первая CMD
работает нормально (CMD
).
Есть ли какой-нибудь подход к запуску нескольких скриптов Python и исполняемого файла в фоновом режиме?
Я пытался использовать файлы bash, но тоже не получилось.