
* Rabbitmq
docker run -d -p 15672:15672 -p 5672:5672 --name rabbitmq --network ecommerce-network -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest rabbitmq:4.0-management
* Mysql
docker run -d -p 13306:3306 --name mysql-server --network my-network -e MYSQL_ROOT_PASSWORD=test1357 mysql:8.0.41
* MariaDB
docker run -d -p 3306:3306 --name mariadb-server --network ecommerce-network -e MARIADB_ROOT_PASSWORD=test1357 mariadb:latest
* Kafka
docker run -d -p 9092:9092 --name broker --network ecommerce-network apache/kafka:latest
* Config-service
docker run -d -p 8888:8888 --name config-service --network ecommerce-network config-service:1.0
* Eureka (Service-discovery)
docker run -d -p 8761:8761 --name service-discovery --network ecommerce-network service-discovery:1.0
* Apigateway-service
docker run -d -p 8000:8000 --name apigateway-service --network ecommerce-network -e spring.rabbitmq.host=rabbitmq apigateway-service:1.0
๐ RabbitMQ, ๐ฌ MySQL/MariaDB, ๐ง Kafka๋ DockerHub์์ ์ ๊ณตํ๋ ๊ณต์ ์ด๋ฏธ์ง ์ฌ์ฉํ๋ฏ๋ก mvn ๋น๋๋ Dockerfile์ ์์ฑํ ํ์์์ด docker run ๋ช
๋ น๋ง์ผ๋ก ์ปจํ
์ด๋ ์คํ ๊ฐ๋ฅ!
โ๏ธ config-service, eureka, apigateway-service ๋ฑ ์ฐ๋ฆฌ๊ฐ springboot์์ ์ง์ ๋ง๋ ์๋น์ค๋ค์ ๋น์ฐํ ๊ณต์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ Dockerfile์ด ์์ด์ผ ํ๊ณ , mvn package ์ดํ์ docker build๋ก ์ด๋ฏธ์ง ๋ง๋ ํ ์งํํด์ผ ํฉ๋๋ค.
์๋๋ ์ง์ ๋ง๋ Order-service์ ๋์ปค ์คํ ๊ณผ์ ์ ๋๋ค.
FROM openjdk:17-ea-11-jdk-slim
VOLUME /tmp
COPY target/order-service-1.0.jar order-service.jar
ENTRYPOINT ["java", "-jar", "order-service.jar"]
C:\toy-msa\order-service>mvn clean compile package -DskipTests=true

C:\toy-msa\order-service>docker build --tag order-service:1.0 -f Dockerfile .


docker-compose๋ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ํ ๋ฒ์ ์ ์ํ๊ณ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค.
์๋ฅผ ๋ค์ด config-service, eureka, apigateway-service, rabbitmq ๋ฑ๋ฑ์ ์์คํ ์ ๋ง๋ค์๋๋ฐ ์ด๊ฑธ ์ ๋ถ docker run ๋ช ๋ น์ด๋ก ์คํํ๋ ค๋ฉด ๋งค๋ฒ ํฌํธ, ๋คํธ์ํฌ, ํ๊ฒฝ๋ณ์ ๋ค ์จ์ผ ํด์ ๊ท์ฐฎ์ต๋๋ค.
โ
๊ทธ๋์ ๋ฑ์ฅํ ๊ฒ docker-compose์
๋๋ค!
docker-compose up -d๋ง์ผ๋ก ๋ชจ๋ ์๋น์ค๋ฅผ ์๋ํ ์ ์์ต๋๋ค.
order-service๋ RabbitMQ, Zipkin, MariaDB, Eureka ๊ฐ์ ์ธ๋ถ ์๋น์ค๋ค์ ์์กดํ๋ฉฐ ๊ทธ ์๋น์ค๋ค๊ณผ ๊ฐ์ ๋คํธ์ํฌ(ecommerce-network) ์์์ ํต์ ํด์ผํ๋ฏ๋ก docker-compose.yml์ ๋ง๋ค์ด์ ํ ๋ฒ์ ์คํํ๋ ๊ตฌ์กฐ๋ก ๋ง๋ญ๋๋ค.
โ docker-compose๊ฐ ์๋ ์ ๋ค์ Dockerfile์ ์ง์ ์คํํ๋ ๊ฒ ์๋๋ผ, docker-compose.yml์ด Dockerfile์ ์ฌ์ฉํด์ ์ด๋ฏธ์ง ๋น๋ + ์ปจํ ์ด๋ ์คํ๊น์ง ๋ค ํด์ค๋๋ค.
# Use root/example as user/password credentials
version: '3.1'
services:
order-service:
image: order-service:1.0
environment:
spring.rabbitmq.host: rabbitmq
spring.zipkin.base-url: http://zipkin-zipkin-1:9411
spring.datasource.url: jdbc:mariadb://mariadb-server:3306/mydb
eureka.client.service-url.defaultZone: http://service-discovery:8761/eureka/
management.zipkin.tracing.endpoint: http://zipkin-zipkin-1:9411/api/v2/spans
networks:
my-network:
networks:
my-network:
external: true
name: ecommerce-network
C:\toy-msa\order-service>docker-compose -f docker-compose-order.yml up -d

C:\toy-msa\order-service>docker-compose -f docker-compose-order.yml logs
๋๊ฐ์ ๊ฒฝ์ฐ ์ด์ ์ ์๋ mydb๋ฅผ ์๊ฐ ์ฐพ์ง ๋ชปํด์ ์ค๋ฅ๊ฐ ๋ฌ๋ค.
๊ทธ๋์ ์ญ์ ํด์ฃผ๊ณ ๋ค์ ์์ฑํ๋ ๋์ํ๋ค.
Eureka ํ์ธ

docker process ํ์ธ

์์ USER๋ก Postman ํ
์คํธ
