Tiny Bunny
본문 바로가기
카테고리 없음

Docker, MySQL 연동

by 내이름효주 2024. 12. 17.
  • docker-compose.yml
services:
    my_test:
        image: my_test
        container_name: my_test
        network_mode: "host"
        restart: always
        volumes:
            - /home/ohyo/mysql_test:/app
        env_file:
          - ./.env
        environment:
            - TZ=Asia/Seoul
        command: python /app/main.py

    mysql-container:
        image: mysql
        restart: always
        container_name: mysql-container
        environment:
            - TZ=Asia/Seoul
            - MYSQL_ROOT_PASSWORD=비밀번호
        depends_on:
            - my_test
        command:
            - --character-set-server=utf8mb4
            - --collation-server=utf8mb4_unicode_ci
  • main.py
    class MyModbus(threading.Thread):
        def __init__(self, _host, _port):
            super().__init__()
            self.client = ModbusTcpClient(host=_host, port=_port)
            self.conn = None
            self.cur = None
            self.connect_mysql()
    
        def connect_mysql(self):
            try:
                self.conn = pymysql.connect(
                    host=MY_IP,
                    user='root',
                    password=비밀번호,
                    db='MyDB',
                    charset='utf8'
                )
                self.cur = self.conn.cursor()
            except Exception as e:
                print(f"Error: {e}")
                self.conn = None
    • host IP를 'loaclhost'말고 직접 지정(Docker 내에서 MYSQL서버가 localhost에서 실행 중)
    • password 지정