Предотвратить выход сценариев из контейнера Docker

0

Сценарий оболочки:

#!/bin/sh
service mysql start
mysql < /mysql/dockerSql.sql
service mysql stop

Файл докеров:

FROM mysql:5.6
ADD setup.sh /mysql/setup.sh
ADD dockerSql.sql /mysql/dockerSql.sql
ENTRYPOINT ["sh", "/mysql/setup.sh"]

Docker составить файл:

version: '3'

services:  
  nariadi-front:
    container_name: nariadi_frontend_container
    build: ./NariadiFrontEndDocker
    ports: 
        - "5002:80"
    depends_on:
        - nariadi-service

  nariadi-service:
    container_name: nariadi_backend_container
    build: ./Nariadi
    ports: 
        - "5008:5008"
    depends_on: 
        - mysql-docker-nariadi
    #command: python manage.py loaddata -t nariadi_docker -u admin

  mysql-docker-nariadi:
    build: ./docker-mysql
    ports:
        - "3310:3306"
    tty: true
    #command: --default-authentication-plugin=mysql_native_password

Отклик:

mysql-docker-nariadi_1  | No directory, logging in with HOME=/
mysql-docker-nariadi_1  | ..
mysql-docker-nariadi_1  | [info] MySQL Community Server 5.6.40 is started.
mysql-docker-nariadi_1  | ...
mysql-docker-nariadi_1  | [info] MySQL Community Server 5.6.40 is stopped.
mysql-docker-nariadi_1  | ------_DONEEEEEEEEEEE_------------
nariadi_backend_container | [2018-08-09 10:42:52 +0000] [1] [INFO] Starting gunicorn 19.7.1
nariadi_backend_container | [2018-08-09 10:42:52 +0000] [1] [INFO] Listening at: http://0.0.0.0:5008 (1)
nariadi_backend_container | [2018-08-09 10:42:52 +0000] [1] [INFO] Using worker: sync
nariadi_backend_container | [2018-08-09 10:42:52 +0000] [8] [INFO] Booting worker with pid: 8
nariadi_backend_container | [2018-08-09 10:42:52 +0000] [10] [INFO] Booting worker with pid: 10
nariadi_backend_container | [2018-08-09 10:42:52 +0000] [11] [INFO] Booting worker with pid: 11
nariadi_backend_container | [2018-08-09 10:42:53 +0000] [12] [INFO] Booting worker with pid: 12
nariadi_frontend_container | AH00558: httpd: Could not reliably determine the server fully qualified domain name, using 172.18.0.2. Set the 'ServerName' directive globally to suppress this message
nariadi_frontend_container | AH00558: httpd: Could not reliably determine the server fully qualified domain name, using 172.18.0.2. Set the 'ServerName' directive globally to suppress this message
nariadi_frontend_container | [Thu Aug 09 10:42:54.528127 2018] [mpm_event:notice] [pid 1:tid 140035064244096] AH00489: Apache/2.4.33 (Unix) configured -- resuming normal operations
nariadi_frontend_container | [Thu Aug 09 10:42:54.528422 2018] [core:notice] [pid 1:tid 140035064244096] AH00094: Command line: 'httpd -D FOREGROUND'
desktop_mysql-docker-nariadi_1 exited with code 0

Когда я запускаю компоновку докеров, существует служба mysql-docker-nariadi с кодом 0. Сценарий оболочки также выполняется и.sql файл. Как я могу предотвратить выход?

  • 0
    Возможный дубликат Как добавить скрипт запуска в контейнер MySQL?
  • 0
    Этот вопрос должен ответить на вашу актуальную проблему. В качестве общего утверждения относительно вашей более конкретной проблемы вы должны предположить, что такие команды, как service , systemctl и т. Д., Просто не работают в Docker и находят другой способ выполнить любую задачу.
Показать ещё 1 комментарий
Теги:
docker
dockerfile

1 ответ

0

Вам нужно запустить свое изображение в режиме демона - так, как они делают это в официальном изображении MySQL:

ENTRYPOINT ["mysqld"]

В вашем конкретном случае вы можете запустить "mysqld" в конце вашего SH файла точки /mysql/setup.sh.

  • 0
    Я добавил «mysqld» в конец моего файла setup.sh, и он снова завершился. Вот ответ сейчас: i.imgur.com/ERgbZYy.png
  • 0
    Можете ли вы удалить «службу mysql stop» из сценария оболочки?
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню