BackEnd/Spring Boot

[Spring] Docker์—์„œ Static File ์ฒ˜๋ฆฌํ•˜๊ธฐ

ddonghyeo 2023. 9. 2. 05:39

GitHub Action์„ ํ†ตํ•ด์„œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ Docker๋กœ ๋ฐฐํฌํ–ˆ๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

1. GitHub์— ์˜ฌ๋ฆฌ์ง€ ์•Š๋Š” ํŒŒ์ผ - application.yml ์ ์šฉ 

์„œ๋ฒ„์— ํ•„์š”ํ•œ applicationํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด์•ผ ํ–ˆ๋Š”๋ฐ, raw ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ github์— ์˜ฌ๋ ค์„œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  ์ˆœ ์—†์—ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ GitHub Action ์Šคํฌ๋ฆฝํŠธ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

 

gradle.yml

...

- name: Set YML
      run: |
        mkdir -p src/main/resources
        echo "${{ secrets.APPLICATION_YML }}" | base64 --decode > src/main/resources/application.yml
        find src

...

Action Secret์— ๋ฏธ๋ฆฌ application.yml ๋‚ด์šฉ์„ ์„ค์ •ํ•ด๋‘๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ buildํ•˜๊ธฐ ์ „์— resources ํด๋”์— ๋„ฃ์–ด๋‘๋Š” ๊ฒƒ์ด๋‹ค.

๋‹ค๋งŒ, base64๋กœ encodingํ•ด์„œ ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์—, Secret์— base64๋กœ encodingํ•ด์„œ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.

 

2. GitHub์— ์˜ฌ๋ฆฌ๋Š” ํŒŒ์ผ - SSL KEY ์ ์šฉ (ํ”„๋กœ์ ํŠธ ๋‚ด Static File)

 

ํ”„๋กœ์ ํŠธ์— SSL์„ ์„ค์ •ํ•ด๋‘ฌ์„œ, SSL ํ‚ค๋ฅผ ์ธ์‹ํ•˜์—ฌ 443 ํฌํŠธ๋กœ ์—ด์–ด์•ผ ํ•˜๋Š”๋ฐ, ํ•ด๋‹น ํ‚ค๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค..

ํ‚ค ํŒŒ์ผ์„ static์— ๋„ฃ์–ด๋‘”๋‹ค๊ณ  ํ•ด๋„, ์„œ๋ฒ„๋ฅผ ๋นŒ๋“œํ•œ jarํŒŒ์ผ๋งŒ Docker Image์— ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— static ํŒŒ์ผ๋“ค์€ ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๋”ฐ๋ผ์„œ static์— ์„œ๋ฒ„ ํ‚ค๋ฅผ ๋„ฃ์–ด๋‘๊ณ , Dockerfile์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

 

Dockerfile

COPY src/main/resources/static /app/static

 

static์— ์žˆ๋Š” ํŒŒ์ผ์„ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด /app/static์— ๋ฏธ๋ฆฌ ๋„ฃ์–ด๋‘๊ณ , ์„œ๋ฒ„ ํ‚ค๋ฅผ ํ•ด๋‹น ์œ„์น˜๋กœ ์„ค์ •ํ•ด๋‘๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋Ÿฌ๋ฉด ํ‚ค ํŒŒ์ผ์„ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ ค๋‘์–ด์•ผ ํ•˜๋Š”๋ฐ..

 

์ •์ ์œผ๋กœ ํ•„์š”ํ•œ ํŒŒ์ผ๋“ค์€ ์˜ฌ๋ ค๋‘์–ด์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ํ‚ค๋ฅผ ์ง์ ‘ ์˜ฌ๋ฆฌ๋Š”๊ธฐ๋ณด๋‹จ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค เฒฅ_เฒฅ