๊ฐ์ ๐ค
ํ๋ก์ ํธ๋ฅผ ์์ํ์ง ์ด๋๋ง 2์ฃผ์ฐจ๊ฐ ์ ์ด๋ค๊ณ ์๋ค. Spring Security ์ค์ ๊ณต๋ถํ๋ฉด์ ํ๋๋ผ ์๊ฐ๋ณด๋ค ์ง๋๊ฐ ๋๊ฐ์ง ์๊ณ ์๋ ์์ค Redirect ๋๋ฉ์ธ์ ์ค์ ํ๋ ๋ถ๋ถ์์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค.
Flutter ๊ฐ๋ฐ์๋๊ป์ Web View๋ฅผ ์ฌ์ฉํ ๋ HTTPS๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ด๋ค. (iOS์์ ๋ค์ดํฐ๋ธ์์ ๋ง์๋ค๊ณ ํจ, Info.plist์ ๋ฑ๋กํด์ ์ฐํํ ์๋ ์๋ค๊ณค ํ์ฌ)
์ด์ฐจํผ ์ดํ๋ฆฌ์ผ์ด์
์ถ์ํ ๋๋ Https๊ฐ ์๋ ๋๋ฉ์ธ์ด Redirect ์ค์ ์ด ๋์ด์์ผ๋ฉด ์ฌ์ฌ๊ฐ ๋์ง ์์ผ๋ ์ด๋ฒ ๊ธฐํ์ Https๋ฅผ ์ ์ฉํด๋ณด๊ณ ์ ํ๋ค.
AWS๋ฅผ ์ฐ๋ฉด ์ด๋ฐ ๊ณ ์์ ํ ์ด์ ๋ ์์ง๋ง...๐ข
Server ์ค์ ๐ฅ๏ธ & ์ฌ๊ฑด์ ๋ฐ๋จ
ํ๋ก์ ํธ๋ฅผ ์ฒ์ ์์ํ๋ ์๊ธฐ์ ์ค์ ํ ๋ด docker-compose.yaml ํ์ผ์ ๋ค์๊ณผ ๊ฐ์๋ค.
# ๋ฒ์ ๋ช
์ ์ํด์ฃผ๋ฉด ๋น๋ ์๋จ
version: '3'
services:
dev:
build:
context: ./dev/
dockerfile: Dockerfile
ports:
- "10022:22"
- "18080:8080"
prod:
build:
context: ./prod/
dockerfile: Dockerfile
ports:
- "2222:22"
# Docker ๋ด๋ถ์์ ์ ๊ทผํ ๋ : mysql://mysql:3306/your_database
mysql:
image: mysql:8.0
container_name: mysql
# ports:
# - 3306:3306 # HOST:CONTAINER
environment:
MYSQL_ROOT_PASSWORD: admin
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- /dev/sdb
๋๋ ์ด ๊ธ์ ์ฐธ์กฐํด์ HTTPS๋ฅผ ์ ์ฉ์ํฌ๋ ค๊ณ ํ๊ณ ์๋๋ฐ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
Could not bind TCP port 80 because it is already in use by another process on
this system (such as a web server). Please stop the program in question and then
try again.
์๋ฌด๋๋ 80 ํฌํธ๊ฐ ์ด๋ ค์์ง ์์์ ๋ฐ์ํ๋ ์๋ฌ์ธ ๊ฒ ๊ฐ์๋ค.
docker-compose down
docker-compose up --build -d
prod ํ๊ฒฝ์ 80 ํฌํธ์ 8080 ํฌํธ, 443 ํฌํธ๋ฅผ ์ด๊ธฐ ์ํด์ ์์ ๊ฐ์ ๋ช ๋ น์ด๋ก ๋์ปค ์๋น์ค๋ฅผ ์ค์งํ๊ณ ์ฌ๋น๋๋ฅผ ํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋ฐ๋ฐ ์ ๋ช ๋ น์ด๋ฅผ ์จ์ ์ฌ๋น๋๋ฅผ ํ๋๊น ์ปจํ ์ด๋ ์์ ์๋ ๋ฐ์ดํฐ๋ค์ด ๋ค ๋ ์๊ฐ๋ฒ๋ ธ๋ค. ์ด๋ฏธ ์์ง๋ฌ์ง ๋ฌผ์ด์์ง๋ง ๋ค์์ ์ด๋ฐ ์ผ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ (์ปจํ ์ด๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ์ฑ๋ก ํฌํธํฌ์๋ฉ๋ง ๋ณ๊ฒฝํ ์ ์๋๋ก) ์ข ๋ ๊ตฌ๊ธ๋ง๊ณผ ์งํผํ ์ ํด๋ณธ ๊ฒฐ๊ณผ Image๋ฅผ ์ด์ฉํด์ docker-compose ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ์คํํ๋ฉด Image ์์ ๋ค์ด์๋ ์ ์ ์ค์ ๋ค์ด ๊ทธ๋๋ก ๋ณต์์ด ๋๋ค๋ ๊ฒ์ด๋ค!!!
๋ฌธ์ ํด๊ฒฐ ๐ ๏ธ
ํ์ฌ ์คํ ์ค์ธ Container ๋ฐฑ์
sudo docker commit afe870fb486d prod:1.0.0
sha256:68950e14e12b17922cafdd1b03550caa6cf5cca631e63a449eafa943bde25d7c
docker-compose.yaml ํ์ผ ์์
์๊น ๊ทธ compose ํ์ผ์์ prod:
๋ถ๋ถ๋ง ์์ ํ๋ค.
prod:
image: prod:1.0.0
ports:
- "2222:22"
- "8080:8080"
- "80:80"
- "443:443"
์คํ์ค์ด๋ Container ์ข ๋ฃ
prod ์๋น์ค๋ง ๋น๋
sudo docker-compose up -d --no-deps --build prod
--no-deps : docker-compose up ๋ช ๋ น์ ์คํํ ๋ ์ง์ ๋ ์๋น์ค์ ๋ํด์๋ง ์์ ์ ์ํํ๊ณ , ํด๋น ์๋น์ค๊ฐ ์์กดํ๋ ๋ค๋ฅธ ์๋น์ค๋ค์ ์์ํ๊ฑฐ๋ ์ฌ์์ํ์ง ์๋๋ก ํ๋๋ฐ ์ฌ์ฉ๋๋ค.
๐ ์ ์ ๋ด๊ฐ ํด์คฌ๋ ์ค์ ์ด ๊ทธ๋๋ก ์ ์ฉ๋ ์ฑ ์์๋ prod ์๋ฒ์ ๋ชจ์ต์ ์ ์ ์๋ค.
ํด์น์ ๋? ๐ค
prod ์๋ฒ์์ mysql์ ์ฐ๊ฒฐ์ด ์๋๋ค... ๋ญ๊ฐ ์๋ ๊ฑฐ ๊ฐ์๋๋ฐ ์ด๊ฒ ๋ผ? ์ญ์ ๋์ปคํ์ ๋ฌ๋ผ! ์ด๋ฌ๋ฉด์ ํด๋ดค์ง๋ง ์ญ์ ์๋๋ค.
๊ทธ๋์ ๋ชจ๋ Container๋ฅผ Commitํ๊ณ docker-compose.yaml ํ์ผ์ ์๋์ ๊ฐ์ด ๋ฐ๊ฟ์คฌ๋ค.
# ๋ฒ์ ๋ช
์ ์ํด์ฃผ๋ฉด ๋น๋ ์๋จ
version: '3'
services:
dev:
build:
context: ./dev/
dockerfile: Dockerfile
ports:
- "10022:22"
- "18080:8080"
prod:
image: prod:1.0.1
ports:
- "2222:22"
- "8080:8080"
- "80:80"
- "443:443"
depends_on:
- mysql
# Docker ๋ด๋ถ์์ ์ ๊ทผํ ๋ : mysql://mysql:3306/your_database
mysql:
image: mysql:1.0.0
container_name: mysql
# ports:
# - 3306:3306 # HOST:CONTAINER
environment:
MYSQL_ROOT_PASSWORD: admin
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- /dev/sdb
๊ธํ ๋ถ์ ๋๊ณ ์๊ฐํด๋ณด๋๊น '์ด ๋ฐฉ๋ฒ ๋ฐ์ ์๋? ์ ์ด๋ ๊ฒ ๋นํจ์จ์ ์ด์ง?' ํ๋ ์๊ฐ์ด ๋ค์๋ค.
Docker Network ๐ณ
Docker๋ฅผ Bottom-Up ๋ฐฉ์์ด ์๋, ํ์ํ ๊ธฐ๋ฅ์ ๊ทธ ๋ ๊ทธ ๋ ๋ฐฐ์ฐ๊ณ ์๋ ๋๋ก์จ๋ Docker Network ๊ธฐ๋ฅ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๋ชฐ๋๋ค.
docker compose๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ ๋ํดํธ ๋คํธ์ํฌ๋ฅผ ์ค์ ํ๊ฒ ๋๋๋ฐ ๋ด๊ฐ ๋ง์ฝ์ docker-compose ํ์ผ์ 'abc'๋ผ๋ ์ด์ฝ๋ฆฟ์์ ๋น๋ํ๋ค๋ฉด abc_default
๋ผ๋ ๋คํธ์ํฌ๊ฐ ์์ฑ๋๋ค๊ณ ํ๋ค.
๋คํธ์ํฌ ํ์ธ ๋ช ๋ น์ด
sudo docker network ls
๋คํธ์ํฌ ์์ฑ ๋ช ๋ น์ด
sudo docker network create some_network
์ด๋ฏธ์ง์ network ์ถ๊ฐ
docker run --name [์์ฑํ ์ปจํ
์ด๋๋ช
] --network [๋คํธ์ํฌ๋ช
] -d [๋น๋ํ ์ด๋ฏธ์ง]
yaml์ ๋คํธ์ํฌ ์ถ๊ฐ
๋ง์ฝ์ prod ์๋ฒ์ networks ์ค์ ์ ํฌํจํ๊ณ ์ถ์๋ค๋ฉด
prod:
image: prod:1.0.1
ports:
- "2222:22"
- "8080:8080"
- "80:80"
- "443:443"
depends_on:
- mysql
์ด ๋ถ๋ถ์
prod:
image: prod:1.0.1
ports:
- "2222:22"
- "8080:8080"
- "80:80"
- "443:443"
depends_on:
- mysql
networks:
- some_networks
networks:
some_networks:
driver: bridge
์ด๋ ๊ฒ ์์ ํด์ฃผ๋ฉด ๋๋ค.