Docker Compose
λ©ν° 컨ν
μ΄λ νκ²½
λ°λͺ¨ μ ν리μΌμ΄μ μμ€μ½λ λ€μ΄λ‘λ
git clone https://github.com/youngwjung/to-do.git && cd to-doμ ν리μΌμ΄μ μμ€ μ½λ λ° README 리뷰
Dockerfile μμ±
cat <<EOF | tee frontend/Dockerfile FROM nginx:alpine COPY . /usr/share/nginx/html EOFνλ‘ νΈμλ 컨ν μ΄λ μ΄λ―Έμ§ μμ±
docker image build -t frontend frontend/νλ‘ νΈμλ 컨ν μ΄λ μμ±
docker container run --name frontend -d -p 8080:80 frontendμΉλΈλΌμ°μ μμ 컨ν μ΄λλ‘ μ κ·Όλλμ§ νμΈ - μλ λͺ λ Ήμ΄λ‘ μ£Όμ νμΈ κ°λ₯
echo "$(curl -s ifconfig.io):8080"Dockerfile λ³κ²½
cat <<'EOF' | tee frontend/Dockerfile FROM nginx:alpine COPY . /usr/share/nginx/html ARG API_ENDPOINT RUN sed -i 's/localhost:9000/'"$API_ENDPOINT"'/g' /usr/share/nginx/html/js/main.js EOFνλ‘ νΈμλ 컨ν μ΄λ μ΄λ―Έμ§ μ¬μμ±
docker image build --no-cache -t frontend \ --build-arg API_ENDPOINT=$(curl -s ifconfig.io):9000 \ frontend/νλ‘ νΈμλ 컨ν μ΄λ μ¬μμ±
{ docker container rm frontend --force docker container run --name frontend -d -p 8080:80 frontend }μΉ λΈλΌμ°μ μμ λ‘λ©λ νμ΄μ§ 리νλ μ
Dockerfile μμ±
cat <<EOF | tee api/Dockerfile FROM golang:1.20-alpine as builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY *.go ./ RUN go build -o /api FROM alpine RUN mkdir /app WORKDIR /app COPY --from=builder /api /app/api EXPOSE 9000 CMD ["/app/api"] EOFAPI 컨ν μ΄λ μ΄λ―Έμ§ μμ±
docker image build -t api api/API 컨ν μ΄λ μμ±
docker container run --name api -d -p 9000:9000 apiAPI 컨ν μ΄λ μν νμΈ
docker container ls -aAPI 컨ν μ΄λ λ‘κ·Έ νμΈ
docker logs apiMySQL 컨ν μ΄λ μμ±
docker container run --name mysql -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=asdf1234 mysql:5.7λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ μμ±
mysql -h 127.0.0.1 -u root -pasdf1234 < database/schema.sqlAPI 컨ν μ΄λ μ¬μμ±
{ docker container rm api --force docker container run --name api -d -p 9000:9000 \ -e DATABASE_HOST=$(docker container inspect mysql --format '{{.NetworkSettings.IPAddress}}') \ -e DATABASE_PASSWORD=asdf1234 \ api }API 컨ν μ΄λ λ‘κ·Έ νμΈ
docker logs apiRedis 컨ν μ΄λ μμ±
docker container run --name redis -d redisAPI 컨ν μ΄λ μ¬μμ±
{ docker container rm api --force docker container run --name api -d -p 9000:9000 \ -e DATABASE_HOST=$(docker container inspect mysql --format '{{.NetworkSettings.IPAddress}}') \ -e DATABASE_PASSWORD=asdf1234 \ -e REDIS_HOST=$(docker container inspect redis --format '{{.NetworkSettings.IPAddress}}') \ api }μ€νμ€μΈ 컨ν μ΄λ λͺ©λ‘ νμΈ
docker container ls보μκ·Έλ£Ήμ μΈλ°μ΄λ κ·μΉ μΆκ°
aws ec2 authorize-security-group-ingress \ --group-id $(aws ec2 describe-security-groups \ --filters Name=group-name,Values=$(curl -s http://169.254.169.254/latest/meta-data/security-groups) \ --query "SecurityGroups[0].GroupId" --output text) \ --protocol tcp \ --port 9000 \ --cidr 0.0.0.0/0 \ --output textμΉ λΈλΌμ°μ μμ λ‘λ©λ νμ΄μ§ 리νλ μ
리μμ€ μ 리
{ docker container rm $(docker container ls -aq) --force docker image prune --all --force docker volume prune --force cd ~/environment }
Docker Compose
Docker Compose μ€μΉ
Docker Compose μ€μΉ νμΈ
μλνλ μ€λ₯Ό ꡬμ±ν Compose νμΌ μμ±
Compose νμΌμ λͺ μλ ꡬμ±λλ‘ μ»¨ν μ΄λ νκ²½ μμ±
μ€νμ€μΈ Compose νλ‘μ νΈ λͺ©λ‘ νμΈ
Compose νμΌ μμ
μμ μ¬ν λ°μ
μ€νμ€μΈ Compose νλ‘μ νΈ λͺ©λ‘ νμΈ
μμ νκΈ°μ λ²μ μ Compose νμΌλ‘ μμ±λ 리μμ€λ₯Ό μλμΌλ‘ μμ
Composeλ₯Ό ν΅ν΄μ μ€νμ€μΈ 컨ν μ΄λ λͺ©λ‘ νμΈ
Compose νμΌ μμ
μμ μ¬ν λ°μ
Composeλ₯Ό ν΅ν΄μ μ€νμ€μΈ 컨ν μ΄λ λͺ©λ‘ νμΈ
μ€νμ€μΈ λͺ¨λ 컨ν μ΄λ λͺ©λ‘ νμΈ
NGINX 컨ν μ΄λ μμ±
μ€νμ€μΈ λͺ¨λ 컨ν μ΄λ λͺ©λ‘ νμΈ
Composeλ₯Ό ν΅ν΄μ μ€νμ€μΈ 컨ν μ΄λ λͺ©λ‘ νμΈ
μλ‘μ΄ ν°λ―Έλμ μ΄κ³ Composeλ₯Ό ν΅ν΄μ μ€νμ€μΈ 컨ν μ΄λ λͺ©λ‘ νμΈ
μ€νμ€μΈ Compose νλ‘μ νΈ λͺ©λ‘ νμΈ
μμ±λ λͺ¨λ 컨ν μ΄λμ λΆμ¬λ Label νμΈ
κΈ°μ‘΄ ν°λ―Έλλ‘ μ΄λν΄μ NGINX μμ
Compose νμΌ μμ
μμ μ¬ν λ°μ
μΉλΈλΌμ°μ μμ ν¬νΈν¬μλ©ν ν¬νΈλ₯Ό ν΅ν΄μ 컨ν μ΄λλ‘ μ κ·Όλλμ§ νμΈ - μλ λͺ λ Ήμ΄λ‘ μ£Όμ νμΈ κ°λ₯
Compose νμΌ μμ
μμ μ¬ν λ°μ
μΉλΈλΌμ°μ μμ μλνλ μ€ μ¬μ΄νΈ μ¬μ μ - μλ λͺ λ Ήμ΄λ‘ μ£Όμ νμΈ κ°λ₯
Compose νμΌ μμ
μμ μ¬ν λ°μ
νλ¬κ·ΈμΈμ΄ μΆκ° λμλμ§ νμΈ
wp-cliλ₯Ό ν΅ν΄μ μλνλ μ€ ν λ§ μ€μΉ μλ
Dockerfile μμ±
Compose νμΌ μμ
μμ μ¬ν λ°μ
μΉ λΈλΌμ°μ μμ μλνλ μ€ λ©μΈ νμ΄μ§λ‘ μ΄λν΄μ ν λ§ νμΈ
wp-cliλ₯Ό ν΅ν΄μ μλνλ μ€ ν λ§ μ€μΉ
μΉ λΈλΌμ°μ μμ μλνλ μ€ λ©μΈ νμ΄μ§λ‘ μ΄λν΄μ ν λ§ νμΈ
wordpress 컨ν μ΄λμμ μ€νμ€μΈ νλ‘μΈμ€ νμΈ
wordpress 컨ν μ΄λμμ μλ¬κ° λ°μνλ€κ³ κ°μ νκ³ μ€νμ€μΈ νλ‘μΈμ€ μ’ λ£
μλνλ μ€ μ¬μ΄νΈμ μ μ λλμ§ νμΈ
Compose νλ‘μ νΈ μν νμΈ
wordpress 컨ν μ΄λκ° μ€νμ€μΈμ§ νμΈ
Compose νμΌ μμ
Compose νλ‘μ νΈ μ¬μ€ν
μλνλ μ€ μ¬μ΄νΈμ μ μ λλμ§ νμΈ
wordpress 컨ν μ΄λμμ μλ¬κ° λ°μνλ€κ³ κ°μ νκ³ μ€νμ€μΈ νλ‘μΈμ€ μ’ λ£
μλνλ μ€ μ¬μ΄νΈμ μ μ λλμ§ νμΈ
wordpress 컨ν μ΄λκ° μ€νμ€μΈμ§ νμΈ
wordpress 컨ν μ΄λκ° μμ λλ©΄ λ€μ μμ± λ κΉμ?
wordpress 컨ν μ΄λκ° μ€νμ€μΈμ§ νμΈ
Compose νλ‘μ νΈ μμ
Composeμ λͺ μνλ Volumeλ€μ΄ λ¨μ μλμ§ νμΈ
Compose νλ‘μ νΈ μμ±
μΉλΈλΌμ°μ μμ μλνλ μ€ μ¬μ΄νΈ μ¬μ μ - μλ λͺ λ Ήμ΄λ‘ μ£Όμ νμΈ κ°λ₯
Compose νλ‘μ νΈ μμ
λ©ν° 컨ν μ΄λ νκ²½μμ κ°λ³λ‘ μμ±νλ μ ν리μΌμ΄μ λ€μ Docker Composeλ₯Ό ν΅ν΄μ ꡬμ±
리μμ€ μ 리
Last updated