Hướng dẫn docker-compose wait for mysql - docker-compose chờ mysql

Docker sáng tác chờ phụ thuộc

Bài viết này cung cấp một ví dụ để làm cho Docker-Compose Chờ bộ chứa MySQL đã sẵn sàng trước khi bắt đầu một thùng chứa ứng dụng Docker phụ thuộc. Chúng tôi sẽ sử dụng công cụ Docker-Compose-Wait, đây là tiện ích dòng lệnh nhỏ cho phép chờ số giây cố định và/hoặc đợi cho đến khi cổng TCP được mở trên hình ảnh đích.docker-compose wait for MySQL container to be ready before starting a dependent docker application container. We’ll use the docker-compose-wait tool tool, which is a small command line utility allowing to wait for a fixed amount of seconds and/or to wait until a TCP port is open on a target image.

Bạn cần thêm công cụ Docker-Compose-Wait trong ứng dụng Dockerfile của bạn.


Contents:

  • Bắt đầu nhanh
  • Bước 0: Tải xuống một mẫu
  • Bước 1: Thêm công cụ Docker-Compose-Wait vào ứng dụng Dockerfile của bạn
  • Bước 2: Sửa đổi tệp docker-compose.yml của bạn
  • Bước 3: Xây dựng và chạy ứng dụng của bạn
  • Bước 4: Dừng container và làm sạch
  • Bản tóm tắt
  • Người giới thiệu

Bắt đầu nhanh

# Download a template
git clone //github.com/kassambara/docker-compose-wait-for-container.git

# Build the demo application
cd docker-compose-wait-for-container/ex01-using-wait-tool
docker-compose build
# Running your app
docker-compose run my_super_app

# Stopping containers and cleaning
docker-compose down 
rm -rf mysql

Bước 0: Tải xuống một mẫu

# Download a template
git clone //github.com/kassambara/docker-compose-wait-for-container.git
cd docker-compose-wait-for-container/ex02-using-wait-tool

Bước 1: Thêm công cụ Docker-Compose-Wait vào ứng dụng Dockerfile của bạn:

files/docker-compose-wait-for-container/ex01-using-wait-tool
├── docker-compose.yml
└── my_super_app
    ├── Dockerfile
    └── sayhello

Bước 2: Sửa đổi tệp docker-compose.yml của bạn

  • Bước 3: Xây dựng và chạy ứng dụng của bạn
  • Bước 4: Dừng container và làm sạch

Bước 2: Sửa đổi tệp docker-compose.yml của bạn

version: '3.6'
services:
  mysql:
    image: "mysql:5.7"
    container_name: mysql
    restart: always
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
      - MYSQL_USER=root
      - MYSQL_PASSWORD=your_password
      - MYSQL_DATABASE=wordpress
    ports:
      - "3306:3306"
    expose:
      - 3306

  my_super_app:
    build: ./my_super_app
    image: "my_super_app:latest"
    container_name: my_supper_app
    depends_on:
      - mysql
    command: sh -c "/wait && /sayhello"
    environment:
      - WAIT_HOSTS=mysql:3306
      - WAIT_HOSTS_TIMEOUT=300
      - WAIT_SLEEP_INTERVAL=30
      - WAIT_HOST_CONNECT_TIMEOUT=30

  • Bước 3: Xây dựng và chạy ứng dụng của bạn
  • Bước 4: Dừng container và làm sạchwait for multiple hosts, the environment variable can be specified as for example WAIT_HOSTS=mysql:3306, nginx:80

Bản tóm tắt. The behavior of the wait utility can be configured with the following environment variables:

  • Người giới thiệu
  • Cấu trúc thư mục dự án:
  • Nội dung dự án thiết yếu:
  • docker-compose.yml để chạy tất cả các dịch vụ container
  • my_super_app SCRIPTS: Mẫu Dockerfile để xây dựng ứng dụng của bạn. Tại đây, ứng dụng demo này sẽ hỏi tên của bạn và sau đó chúc mừng bạn!
  • Lệnh sh -c “/wait && /sayhello” sẽ chạy công cụ chờ và sau đó là ứng dụng của bạn, tại đây /Sayhello.

Bước 3: Xây dựng và chạy ứng dụng của bạn

# Building your app
cd docker-compose-wait-for-container/ex01-using-wait-tool
docker-compose build
# Running your app
docker-compose run my_super_app

Bước 4: Dừng container và làm sạch

Bản tóm tắt

Người giới thiệu

docker-compose down 
rm -rf mysql

Bản tóm tắt

Người giới thiệu

Người giới thiệu

  • Cấu trúc thư mục dự án:


Nội dung dự án thiết yếu:

Français

docker-compose.yml để chạy tất cả các dịch vụ container

my_super_app SCRIPTS: Mẫu Dockerfile để xây dựng ứng dụng của bạn. Tại đây, ứng dụng demo này sẽ hỏi tên của bạn và sau đó chúc mừng bạn!

Bài Viết Liên Quan

Chủ Đề