Возможно ли запустить несколько сценариев установки подкаталогов при запуске контейнера докеров

Я хотел бы запустить контейнер докеров оракула, используя docker-compose. В моем файле docker-compose.yml я монтирую том докера как volumes: - /host/folder:/opt/oracle/scripts/setup

На самом деле /host/folder имеет несколько подкаталогов, содержащих некоторые установочные сценарии, которые я хочу, чтобы они выполнялись, когда я делаю docker-compose. Будет ли runScripts.sh в контейнере также учитывать подкаталоги?

Да, если сценарий написан для этого. Если вам нужна помощь в написании скриптов, лучше всего подойдет unix.SE. Это вопрос сценария оболочки, а не вопрос докера.

BMitch 10.12.2020 15:21
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
1
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет. docker-compose не рассматривает ваши подкаталоги для этого.

Вы можете запустить определенный сценарий bash в соответствии с вашими требованиями, в котором вы можете выполнять определенные сценарии.

Ваш docker-compose.yml будет выглядеть следующим образом:

version: "3"

services:
  setup:
    image: ubuntu:latest
    volumes:
      - ./startup-script.sh:/root/startup-script.sh
      - /host/folder:/opt/oracle/scripts/setup
    entrypoint: "/root/startup-script.sh"
    stdin_open: true
    tty: true

И startup-script.sh будет выглядеть следующим образом:

#!/bin/bash

bash /directory1/script.sh
bash /directory2/script.sh
bash /directory3/script.sh
bash /directory4/script.sh

/bin/bash
exec "$@"

Итак, когда контейнер docker встанет, будет выполнен startup-script.sh, а затем он выполнит все остальные необходимые сценарии.

Примечание. Если ваш контейнер не имеет изображения ubuntu и поддерживает sh вместо bash, вы можете заменить /bin/bash на bin/sh в своих docker-compose.yml и startup-script.sh

Другие вопросы по теме