Обычно вы должны запускать это как три отдельных контейнера.В Docker Compose вы можете указать отдельный command:
для каждого контейнера, даже если они построены из одного и того же образа.
version: '3'
services:
math_prog1:
build: .
command: prog1
math_prog2:
build: .
command: prog2
Если вам действительно нужно запустить все три вещи в одном контейнере, ваша лучшая ставкаиспользовать скрипт оболочки как есть.COPY
добавьте его в ваше изображение (или, если необходимо, используйте volumes:
для его внедрения) и сделайте сценарий основным процессом контейнера.Помните, что если prog1
или prog2
не удастся по какой-либо причине, у вас не будет никакой видимости в этом, и ваш единственный выход будет состоять в том, чтобы также перезапустить остальные исправные компоненты (а если prog3
не удастся, то потребуется два другихпрограммы с ним).