| μ€μ΅ νκ²½: MacOS, M1
π³ Dockerλ?
- λ‘컬μμ μλ²μ μ¬λ¦΄ λ λ¬Έμ λ°μ β λ컀 νμ!
- κ°μ’ λνλμ μ€μ μ λ²κ±°λ‘μ
- λνλμλ€μ λ²μ λΆμΌμΉ λ¬Έμ
- μ ν리μΌμ΄μ
μ ν¨ν€μ§ ν μ μλ ν΄
- 컨ν μ΄λμ μ ν리μΌμ΄μ + μμ€ν ν΄ + νκ²½ μ€μ + λνλμλ₯Ό νλλ‘ λ¬Άμ΄ μ΄λμμλ μ½κ² λ°°ν¬νκ³ μμ μ μΈ κ΅¬λμ λμμ€λ€.
- κ΅¬μ± μμ
- Dockerfile - 컨ν μ΄λλ₯Ό μ΄λ»κ² λ§λ€μ΄μΌ νλμ§μ λν μ€λͺ μ
- Image - μ ν리μΌμ΄μ μ μ€ννλλ° νμν μ½λ, λ°νμ, νκ²½, μμ€ν ν΄, μμ€ν λΌμ΄λΈλ¬λ¦¬ λ±μ΄ ν¬ν¨
- Container - Imageλ₯Ό κ³ λ¦½λ νκ²½μμ κ°λ³μ μΈ μμ€ν μμμ μ€νν μ μλ 곡κ°
π λ°°ν¬ μ€μ΅
1. Docker μ€μΉ
- https://www.docker.com/products/docker-desktop/ β Mac With Apple Chip
- νμκ°μ λ ν΄μ€¬λ€.
2. DB μ€μ
application.properties
νμΌ β db μ£Όμ λ°κΏμ£ΌκΈ°RDSλ₯Ό μ°λ©΄ μ’μκ² μ§λ§,, μΌλ¨ μ°μ΅μ©μ΄κΈ° λλ¬Έμ λ΄ IP μ£Όμλ₯Ό λ£μ΄μ€¬λ€.
βοΈ
host.docker.internal
λ₯Ό μ°λ©΄ λλ€κ³ ν¨.
3. Jar νμΌ μμ±
νλ‘μ νΈ μ΄κΈ° β Gradle β build β bootJar
4. Dockerfile
νλ‘μ νΈ μ΅μλ¨μ Dockerfile μμ±
FROM openjdk:17 ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
FROM - λ² μ΄μ€ μ΄λ―Έμ§λ₯Ό μ§μ
ARG - λ³μ μ μΈ
COPY - μ΄λ―Έμ§ μμ± μ νμΌ λ³΅μ¬
ENTRYPOINT - 컨ν μ΄λμ μ΄ν μ§μ
βοΈ jar κ²½λ‘κ° λ€λ₯΄λ€κ±°λ.. μλ° λ²μ μ΄ μ λ§λλ€κ±°λ.. λ±λ± νλ©΄ μ€νν λ μ€λ₯λλ€!
ν°λ―Έλμμ DockerFileμ΄ μλ κ²½λ‘λ‘ μ΄λ ν Dockerfile μ€ν
$ docker build --tag <μ΄λ¦>:<νκ·Έ> .
Apple Chip μ¬μ©μ€μΈ κ²½μ° μλ λͺ λ Ήμ΄λ₯Ό μ€ν..νλΌκ³ λ νμ§λ§ μ΄μ μ ν΄λ λλ λ―..? μΌλ¨ λ ν¨..
$ docker build --platform linux/amd64 --build-arg DEPENDENCY=build/dependency --tag <μ΄λ¦>:<νκ·Έ> .
docker images β λ§λ μ΄λ―Έμ§ λ³Ό μ μμ
4. DockerHubλ‘ Push
λ‘κ·ΈμΈ
$ docker login
push
$ docker push <μ΄λ¦>:<νκ·Έ>
5. λ°°ν¬
μ€ν
$ docker run -p 8080:8080 <μ΄λ¦>:<νκ·Έ>
-i
: 컨ν μ΄λμ μνΈμ μΈ λͺ¨λλ‘ μ€ν β νμ€μ λ ₯(stdin)μ μ΄μ΄λλλ€.-t
: ν°λ―Έλμ ν λΉνλ©°, ν°λ―Έλ μ λ ₯μ λ°μ μ μκ² νλ€. (μ¬μ©νμ§ μμ κ²½μ° λͺ λ Ή μ λ ₯μ κ°λ₯νμ§λ§ μμ νμ X)-p 8080:8080
: νΈμ€νΈμ 8080 ν¬νΈλ₯Ό 컨ν μ΄λμ 8080 ν¬νΈλ‘ 맀ν. νΈμ€νΈμ 컨ν μ΄λ κ°μ ν¬νΈ ν¬μλ© μ€μ
ν μ€νΈ
βοΈ νΈλ¬λΈ μν
μ€ννλλ° μ€νλ§λΆνΈ μ¬λΌκ°κ³ μλ¬κ° λ΄λ€.
<λ¬Έμ > SQLException: Access denied for user
<ν΄κ²°> DB μ κ·Ό κΆν μ€μ
# μ¬μ©μ μΆκ° create user 'username'@'localhost' identified by 'password'; # μ¬μ©μ κΆν μ€μ grant all privileges on *.* to 'username'@'localhost';
π μ°Έκ³ μλ£
'Etc' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Gitlab + Docker + Jenkins μ΄μ©ν μ€νλ§λΆνΈ, 리μ‘νΈ νλ‘μ νΈ CI/CD (4) | 2024.02.25 |
---|---|
[MySQL] νλ‘μμ (0) | 2023.12.30 |
[AWS] EC2 μ€νλ§ λΆνΈ λ°°ν¬ μ€ νΈλ¬λΈμν κΈ°λ‘ (0) | 2023.06.26 |
γ γ γ γ γ γ (0) | 2023.06.12 |
[Git] gitignore μ μ© λ° μ»€λ° κΈ°λ‘ μ κ±° (0) | 2023.05.31 |