gpt4 book ai didi

mysql - 防止脚本在 docker 容器中退出

转载 作者:行者123 更新时间:2023-11-29 17:13:24 25 4
gpt4 key购买 nike

Shell 脚本:

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

Docker 文件:

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's 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's 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

当我运行 docker-compose up 时,mysql-docker-nariadi 服务存在,代码为 0。Shell 脚本正在执行,.sql 文件也正在执行。如何防止退出?

最佳答案

您需要在守护进程模式下运行您的镜像 - 这就是他们在官方 MySQL 镜像中的做法:

ENTRYPOINT ["mysqld"]

在您的具体情况下,您可以在入口点 SH 文件 /mysql/setup.sh 的末尾运行“mysqld”。

关于mysql - 防止脚本在 docker 容器中退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51765050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com