sách gpt4 ăn đã đi

Composer 文件中的 Docker 健康检查

In lại Tác giả: IT Lão Cao 更新时间:2023-10-28 21:34:51 28 4
mua khóa gpt4 giày nike

我尝试将新的运行状况检查集成到我的 docker 系统中,但我真的不知道如何以正确的方式进行:/

问题是,我的数据库容器需要更多时间来启动和初始化数据库,然后是启动我的主应用程序的容器。结果:主容器无法正确启动,原因是缺少数据库连接。我编写了一个 healthcheck.sh 脚本来检查数据库容器的连接性,因此主容器在连接可用后开始启动。但我不知道如何将它正确集成到 Dockerfile 和我的 docker-compose.yml 中

healthcheck.sh 是这样的:

#!bin/bash
COUNTER=0
while [[ $COUNTER = 0 ]]; do
mysql --host=HOST --user="user" --password="password" --database="databasename" --execute="SELECT 1";
if [[ $? == 1 ]]; then
sleep 1
echo "Let's sleep again"
khác
COUNTER=1
echo "OK, lets go!"

xong

mysql 容器 Dockerfile:

FROM repository/mysql-5.6:latest
MAINTAINER Me

... some copies, chmod and so on

VOLUME ["/..."]

EXPOSE 3306

CMD [".../run.sh"]

HEALTHCHECK --interval=1s --timeout=3s CMD ./healthcheck.sh

docker-compose.yml 喜欢:

phiên bản: '2'
dịch vụ:
cơ sở dữ liệu:
image: db image
khởi động lại: luôn luôn
dns:
- 10.
cổng:
- "${MYSQL_EXTERNAL_PORT}:${MYSQL_INTERNAL_PORT}"
môi trường:
TZ: Europe/Berlin
dữ liệu:
image: data image

main application:
image: application image
khởi động lại: luôn luôn
dns:
- 10.
cổng:
- "${..._EXTERNAL_PORT}:${..._INTERNAL_PORT}"
môi trường:
TZ: Europe/Berlin
khối lượng:
- ${HOST_BACKUP_DIR}:/...
volumes_from:
- data
- db

我必须做些什么才能将此运行状况检查集成到我的 docker-compose.yml 文件中才能正常工作?还是有其他机会延迟我的主容器的容器启动?

谢谢马库斯

câu trả lời hay nhất

我相信这类似于 Docker Compose wait for container X before starting Y

你的 db_image 需要支持 curl。
为此,请创建您自己的 db_image:

FROM base_image:latest
CHẠY apt-get update
RUN apt-get install -y curl
EXPOSE 3306

那么你只需要一个看起来像这样的 docker-compose.yml:

phiên bản: '2'
dịch vụ:
cơ sở dữ liệu:
image: db_image
khởi động lại: luôn luôn
dns:
- 10.
cổng:
- "${MYSQL_EXTERNAL_PORT}:${MYSQL_INTERNAL_PORT}"
kiểm tra sức khỏe:
test: ["CMD", "curl", "-f", "http://localhost:${MYSQL_INTERNAL_PORT}"]
interval: 30s
thời gian chờ: 10 giây
thử lại: 5
môi trường:
TZ: Europe/Berlin
main_application:
image: application_image
khởi động lại: luôn luôn
phụ thuộc vào:
cơ sở dữ liệu:
condition: service_healthy
liên kết:
- db
dns:
- 10.
cổng:
- "${..._EXTERNAL_PORT}:${..._INTERNAL_PORT}"
môi trường:
TZ: Europe/Berlin
khối lượng:
- ${HOST_BACKUP_DIR}:/...
volumes_from:
- data
- db

关于 Composer 文件中的 Docker 健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38895558/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress