programing

mariadb가 컨테이너 외부에 있을 수 없습니다.

elecom 2023. 9. 10. 11:57
반응형

mariadb가 컨테이너 외부에 있을 수 없습니다.

도커화된 mariadb로 서비스를 운영하고 싶습니다.컨테이너를 실행하면 종료되지 않으므로 mariadb에 연결할 수 있습니다.mysql -h connected_ip -P connected_port -u root -p. 비밀번호를 물어서 입력을 하는데 비밀번호를 입력하면 무한대 로딩이 됩니다.또한 다음 컨테이너의 시작을 허용하지 않습니다.도커 파일입니다.

FROM mariadb:11

COPY . /

ENV MYSQL_ROOT_PASSWORD=Password123#@!

EXPOSE 3306

다음은 도커링입니다.

version: "3"


services:

  client_connector:
    build: ClientConnector/

    command: python main.py

    ports:
      - 80:80

    depends_on:
      mysql:
        condition: service_healthy

  mysql:
    build: Mysql/

    environment:
      - MYSQL_ROOT_PASSWORD=Password123!@#
      - USER=passwords
      - PASSWORD=P@ss\/\/0rd$
      - DATABASE=passwords
      - BACKUP_DIR=/Database

    command: ./entrypoint.sh

    ports:
      - 8080:3306

    healthcheck:
      test: mysqladmin ping -h 127.0.0.1 -u root --password=Password123#@!
      start_period: 5s
      interval: 5s
      timeout: 5s
      retries: 55

그리고 진입점.sh:

#!/bin/bash

mkdir $BACKUP_DIR

# start process and get it's pid

/etc/init.d/mariadb start & pid=$!

echo "mariadb pid is " $pid

# load database

mariadb -u root -p$MYSQL_ROOT_PASSWORD < dump.sql

# wait for stop

while kill -0 $pid >/dev/null 2>&1; do
    wait $pid
done

# Dump the MySQL database
mysqldump -u $USER -p$PASSWORD $DATABASE > $BACKUP_DIR/$DATABASE.sql

언급URL : https://stackoverflow.com/questions/76584217/mariadb-is-unable-outside-of-the-container

반응형