
2025-06-02
ํ๋ก์ ํธ ๋ฃจํธ/
โโโ FN/ # React (Frontend)
โโโ BN/ # Spring Boot (Backend)
โโโ DB/ # MySQL
โโโ REDIS/ # Redis
๊ฐ ๋๋ ํ ๋ฆฌ์๋ ํด๋น ์๋น์ค์ ๋ง๋ Dockerfile์ ๋ณ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
FROM gradle:8.4-jdk21 AS build
WORKDIR /app
COPY . .
RUN chmod +x ./gradlew
RUN ./gradlew build --no-daemon -x test
FROM eclipse-temurin:21-jdk-alpine
WORKDIR /app
COPY --from=build /app/build/libs/*.jar app.jar
EXPOSE 8090
CMD ["java", "-jar", "app.jar"]
gradlew ๊ถํ ๋ฌธ์ ์ฃผ์ (๊ถํ ๋ถ์ฌ ํ์)FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
.env ํ๊ฒฝ ๋ณ์ ๋ฐ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ค์ ์ nginx.conf๋ก ํ์ฅ ๊ฐ๋ฅFROM mysql:8.0
ENV MYSQL_ROOT_PASSWORD=Zhfldk11!
ENV MYSQL_DATABASE=bookdb
ENV MYSQL_USER=dbconn
ENV MYSQL_PASSWORD=Zhfldk11!
EXPOSE 3306
CMD ["mysqld"]
FROM redis:latest
WORKDIR /usr/local/etc/redis
EXPOSE 6379
CMD ["redis-server"]
redis.conf ์ฌ์ฉ ์ COPY ๊ฐ๋ฅ๊ฐ๊ฐ์ ์๋น์ค(FN, BN, DB, REDIS)๋ Dockerfile์ ํตํด ๋ ๋ฆฝ์ ์ผ๋ก ๋น๋ ๋ฐ ์คํ๋๋ฉฐ, ๋ฉํฐ ์ปจํ ์ด๋ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ด์์ ๋๋ค. ๋ค์ ํธ์์๋ ์ด ์ปจํ ์ด๋๋ค์ ํ๋์ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐํ๊ณ ์ค์ ๋ก ์คํํ๋ ๊ณผ์ ์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.