Home > Development tools and environments > ๐Ÿ› ๏ธ[๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐ ํ™˜๊ฒฝ] DataGrip์œผ๋กœ ์ƒ์„ฑํ•œ MySQL DB๋ฅผ Docker ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ.

๐Ÿ› ๏ธ[๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐ ํ™˜๊ฒฝ] DataGrip์œผ๋กœ ์ƒ์„ฑํ•œ MySQL DB๋ฅผ Docker ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ.
Development tools Enviroments

๐Ÿ› ๏ธ[๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐ ํ™˜๊ฒฝ] DataGrip์œผ๋กœ ์ƒ์„ฑํ•œ MySQL DB๋ฅผ Docker ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ.

โœ…1๏ธโƒฃ MySQL ๋ฐ์ดํ„ฐ ๋คํ”„(Export)

  • โ†˜๏ธŽ mysqldump ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MySQL ๋ฐ์ดํ„ฐ๋ฅผ ๋คํ”„ํ•œ๋‹ค.
    mysqldump -u root -p --databases article > article.sql
    
  • โ†˜๏ธŽ -u root : MySQL ์‚ฌ์šฉ์ž๋ช….
  • โ†˜๏ธŽ -p : ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์š”์ฒญ.
  • โ†˜๏ธŽ --databasese : ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ.
  • โ†˜๏ธŽ article.sql : ๋ฐ์ดํ„ฐ ๋คํ”„ ํŒŒ์ผ๋ช….

โœ…2๏ธโƒฃ Dockerfile ์ƒ์„ฑ.

  • โ†˜๏ธŽ MySQL์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ Dockerfile์„ ์ƒ์„ฑ.
    • โ†˜๏ธŽ Dockerfile ์˜ˆ์‹œ:
      ```dockerfile
      FROM mysql:8.0.38

    # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
    ENV MYSQL_DATABASE=article

    # ๋คํ”„๋œ SQL ํŒŒ์ผ ๋ณต์‚ฌ
    COPY article.sql /docker-entrypoint-initdb.d/

    # MySQL ํฌํŠธ ๋…ธ์ถœ
    EXPOSE 3306
    ```

  • โ†˜๏ธŽ ์„ค๋ช…:
    • โ†˜๏ธŽ FROM mysql:8.0.38 : MySQL 8.0.38 ์ด๋ฏธ์ง€ ์‚ฌ์šฉ.
    • โ†˜๏ธŽ ENV : ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •.
    • โ†˜๏ธŽ COPY : ๋คํ”„ ํŒŒ์ผ์„ MySQL ์ดˆ๊ธฐํ™” ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌ.
    • โ†˜๏ธŽ /docker-enrtypoint-initdb.d/ : ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ SQL ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰.

โœ…3๏ธโƒฃ Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ.

  • โ†˜๏ธŽ Dockerfile์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•œ ํ›„, Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ.
    docker build .
    

โœ…4๏ธโƒฃ Dockerfile์˜ ์œ„์น˜.

๐Ÿ“Œ ์„ค๋ช….

  • โ†˜๏ธŽ Dockerfile์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•ด์•ผ ํ•จ.
    • โ†˜๏ธŽ MySQL ๊ณต์‹ ์ด๋ฏธ์ง€(mysql:8.0.38)์—๋Š” Dockerfile์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•ด์•ผ ํ•จ.

๐Ÿ“Œ Dockerfile ์ƒ์„ฑ ์œ„์น˜.

  • โ†˜๏ธŽ Dockerfile์€ ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ„์น˜์— ์ƒ์„ฑ๋จ.
    • โ†˜๏ธŽ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ
    • โ†˜๏ธŽ Docker ๊ด€๋ จ ์„ค์ • ๋””๋ ‰ํ„ฐ๋ฆฌ (์˜ˆ: docker/)
      • โ†˜๏ธŽ ์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ:
          kobe-board/
          โ”œโ”€โ”€ docker/
          โ”‚   โ”œโ”€โ”€ Dockerfile       โ† Dockerfile ์ƒ์„ฑ
          โ”‚   โ”œโ”€โ”€ backup.sql       โ† MySQL ๋คํ”„ ํŒŒ์ผ (์„ ํƒ ์‚ฌํ•ญ)
          โ”‚   โ”œโ”€โ”€ docker-compose.yml (์„ ํƒ ์‚ฌํ•ญ)
          โ”œโ”€โ”€ service/
          โ”‚   โ”œโ”€โ”€ article/
          โ”‚   โ”œโ”€โ”€ comment/
          โ””โ”€โ”€ common/
        

โœ…5๏ธโƒฃ Dockerfile ์ƒ์„ฑ.

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™.

  • โ†˜๏ธŽ
    cd /Users/kobe/Desktop/kobe-board
    

๐Ÿ“Œ docker ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑ(์„ ํƒ ์‚ฌํ•ญ).

  • โ†˜๏ธŽ
    mkdir docker
    cd docker
    

๐Ÿ“Œ Dockerfile ์ƒ์„ฑ.

  • โ†˜๏ธŽ
    vi Dockerfile
    

๐Ÿ“Œ Dockerfile ๋‚ด์šฉ ์ž‘์„ฑ.

  • โ†˜๏ธŽ ์˜ˆ์ œ Dockerfile:
    ```dockerfile

    MySQL ๊ณต์‹ ์ด๋ฏธ์ง€ ์‚ฌ์šฉ

    FROM mysql:8.0.38

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

ENV MYSQL_DATABASE=article

SQL ๋คํ”„ ํŒŒ์ผ ๋ณต์‚ฌ (์„ ํƒ ์‚ฌํ•ญ)

COPY article.sql /docker-entrypoint-initdb.d/

MySQL ํฌํŠธ ๋…ธ์ถœ

EXPOSE 3306
```

โœ…6๏ธโƒฃ ์ฃผ์˜์‚ฌํ•ญ

  • โ†˜๏ธŽ 1. Dockerfile ์œ„์น˜
    • โ†˜๏ธŽ Dockerfile์€ docker build ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์กด์žฌํ•ด์•ผ ํ•จ.
  • โ†˜๏ธŽ 2. SQL ๋คํ”„ ํŒŒ์ผ
    • โ†˜๏ธŽ article.sql ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•ด๋‹น๋ถ€๋ถ„(COPY article.sql)์„ ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•ด์•ผ ํ•จ.
  • โ†˜๏ธŽ 3. ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ถŒํ•œ
    • โ†˜๏ธŽ MySQL ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” Docker๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ.