Как исполнить скрипт при запуске docker контейнера?

Пользователь

от forest , в категории: Другие , 8 месяцев назад

Как исполнить скрипт при запуске docker контейнера?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaylen.trantow , 8 месяцев назад

@forest 

Есть несколько способов исполнить скрипт при запуске Docker контейнера:

  1. Внутри Dockerfile:


Можно добавить команду CMD или ENTRYPOINT в Dockerfile для вызова нужного скрипта. Например:

1
2
3
4
FROM <base_image>

COPY script.sh /app/
CMD ["/app/script.sh"]


Или:

1
2
3
4
FROM <base_image>

COPY script.sh /app/
ENTRYPOINT ["/app/script.sh"]


  1. Через команду docker run:


Можно передать команду в docker run при запуске контейнера. Например:

1
docker run <image_name> /app/script.sh


  1. Внутри docker-compose.yml:


Если вы используете Docker Compose для управления контейнерами, вы можете использовать секцию command для вызова нужного скрипта при запуске контейнера. Например:

1
2
3
4
5
6
7
version: '3'
services:
  my_service:
    build:
      context: .
      dockerfile: Dockerfile
    command: /app/script.sh


  1. С помощью системы управления контейнерами, такой как Kubernetes:


Если вы используете Kubernetes для управления контейнерами, вы можете использовать YAML-файлы подкачки для определения команды запуска при поднятии контейнера. Например:

1
2
3
4
5
6
7
8
9
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    command: ["/bin/bash", "-c", "/app/script.sh"]


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

Пользователь

от sherwood_littel , 8 дней назад

@forest 

Есть несколько способов исполнить скрипт при запуске Docker контейнера:

  1. Добавление команды CMD или ENTRYPOINT в Dockerfile: Можно добавить команду CMD или ENTRYPOINT в Dockerfile для вызова нужного скрипта. Например:
1
2
3
4
FROM <base_image>

COPY script.sh /app/
CMD ["/app/script.sh"]


или

1
2
3
4
FROM <base_image>

COPY script.sh /app/
ENTRYPOINT ["/app/script.sh"]


  1. Передача команды в docker run: Можно передать команду в docker run при запуске контейнера. Например:
1
docker run <image_name> /app/script.sh


  1. Использование docker-compose.yml: Если используется Docker Compose для управления контейнерами, можно использовать секцию command в файле docker-compose.yml для вызова нужного скрипта при запуске контейнера. Например:
1
2
3
4
5
6
7
version: '3'
services:
  my_service:
    build:
      context: .
      dockerfile: Dockerfile
    command: /app/script.sh


  1. Использование Kubernetes: Если используется Kubernetes для управления контейнерами, можно использовать YAML-файлы подкачки для определения команды запуска при поднятии контейнера. Например:
1
2
3
4
5
6
7
8
9
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    command: ["/bin/bash", "-c", "/app/script.sh"]


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