#Youtube Docker μλ£ μ€λͺ μ 리
μλ³Έ λ§ν¬[Docker_Ros]
#λ컀μ μΌλ°μ λ¬Έμ μ νμ©μ?
λ컀μ κΈ°μ΄λ₯Ό λ°°μ°κ³ 컨ν
μ΄λλ₯Ό μ€ννμ§λ§, μΌλΆ κ·Έλν½ νλ‘κ·Έλ¨μ μ€νλμ§ μμμ.
λ€νΈμν¬ ν΅μ μ μ΄μνκ² μλνλ©°, 곡μ λ³Όλ₯¨μμ μμ±ν νμΌμ μ κΈ°λ λ±μ λ¬Έμ κ° λ°μν μ μμ΄μ.
μ€λμ Dockerfileκ³Ό docker run λͺ
λ Ήμ μμ μ κ°ν΄ μ΄λ¬ν μΌλ°μ λ¬Έμ λ€μ ν΄κ²°ν΄λ³Ό κ±°μμ.
λ‘λ΄κ³΅ν λ° μλν μννΈμ¨μ΄ κ°λ° νκ²½μ μλ‘ λ€λ©° ν΄κ²° λ°©λ²μ 보μ¬μ£Όκ² μ§λ§, μ΄λ λ€μν Docker μ¬μ© μλ리μ€μλ μ μ© κ°λ₯ν΄μ.
μ΅μ’
μ μΌλ‘ Dockerλ λ§€μ° κ²¬κ³ ν νλ«νΌμ΄λ©°, λ€μν μ΄λ―Έμ§λ₯Ό ꡬμΆν μ μλ μμ μ μΈ κΈ°λ°μ μ 곡ν΄μ.
#λ컀 νμΌ μ λ°μ΄νΈ λ° ROS μ΄λ―Έμ§ λ³κ²½
μμμμ 보μ¬λ리λ λ΄μ© μ€ μλͺ»λμκ±°λ μ΅μ μ λ°©λ²μ΄ μλ λΆλΆμ΄ μμ μ μμ΄μ.
Dockerfilesλ Alison Thaxtonμ΄ μμ±ν κ²μ μ°Έκ³ νκ³ , μ¬λ¬ λͺ¨λ² μ¬λ‘λ₯Ό μ 곡νμ΄μ.
μ΄μ μμμμ λ¨κ²¨λ λΆλΆμ λ°νμΌλ‘ ROS λ컀 μ΄λ―Έμ§λ₯Ό λ³κ²½νκΈ°λ‘ νμμ΄μ.
κΈ°λ₯μ λ§μΆ° μ¬μ©λ μ΄λ―Έμ§λ₯Ό λ³κ²½ν΄μΌ νλ€λ λ΄μ©μ λ€λ£¨μ£ .
#λ컀 컨ν μ΄λμμ μ¬μ©μ μ€μ νλ λ°©λ²μ?
λ컀 컨ν μ΄λ λ΄μμ μμ±λ νμΌμ΄ νΈμ€νΈμμ λ£¨νΈ μ¬μ©μμ μν΄ μμ±λμ΄ μ 겨μλ λ¬Έμ λ₯Ό ν΄κ²°ν΄μΌ ν΄μ.
리λ μ€μμλ μ¬μ©μμκ²λ μ¬μ©μλͺ κ³Ό μ¬μ©μ ID λ²νΈ λλ UIDκ° μκ³ , λ컀 컨ν μ΄λλ κΈ°λ³Έμ μΌλ‘ 루νΈλ‘ μ€νλΌ.
μ£Όλ‘ νΈμ€νΈμ νΈνμ± μλ μ¬μ©μλ‘ λλ μΌλ° μ¬μ©μλ‘ μ€ννλ €λ©΄ 리λ μ€ μ¬μ©μ μλ³μ λν λ°°κ²½ μ§μμ΄ νμν΄μ.
νμΌμ μμ±νλ μ¬μ©μλ μμ±ν μ¬μ©μμ UIDλ₯Ό μ μ₯νλλ°, ls -l λͺ λ Ήμ μ¬μ©μ μ΄λ¦μ 보μ¬μ£Όμ§λ§ ls -ln λͺ λ Ήμ ν΅ν΄ μ¬μ©μ ID λ²νΈλ₯Ό νμΈν μ μμ΄μ.
νμΌλ§λ€ μ¬μ©μ IDμ κ·Έλ£Ή IDκ° μμ΄μ μμ μλ§ νΈμ§νκ³ λ€λ₯Έ μ¬μ©μλ λ³Ό μ μλλ‘ νλ λ±μ μ νμ λλ κ²λ κ°λ₯ν΄μ.
Dockerμ μ¬μ©μ μ§μ λ°©λ²μ?
Dockerμκ² μ μ¬μ©μλ₯Ό μ¬μ©νλλ‘ μ§μνλ λ°©λ²μ λͺ κ°μ§κ° μμ΄μ.
μ¬μ©μλ₯Ό λ§λ€κΈ° μ μλ μ€μ λ‘ μλνμ§ μμμ.
μ½λλ₯Ό λΆμ¬λ£μΌλ©΄μ βλ‘μ€(Ross)βλΌλ μ¬μ©μλ₯Ό μμ±νκ³ UID λ° GID 1000μΌλ‘ μ€μ νλ©°, μ΄λ¬ν μΈμλ€μ΄ λΉλ μ λ³κ²½ κ°λ₯νλλ‘ μ€μ λμ΄ μλ€κ³ ν΄μ.
νμ¬ βλ±(deck)βμΈ νΈμ€νΈμ λ€λ₯Έ μ¬μ©μλͺ μ΄λΌ μκ°ν μ μμ§λ§, μλν μ μλ€λ μ μ κΈ°λ€λ €λ΄μΌ ν΄μ.
μ¬μ©μλ₯Ό μν ν λλ ν 리μ κ΅¬μ± λλ ν λ¦¬κ° μμ±λλ©°, μΌλΆ νλ‘κ·Έλ¨μ ν΄λΉ λλ ν λ¦¬κ° μμ κ²μΌλ‘ μμλΌμ.
βdocker build -t myimageβλ₯Ό μ¬μ©νμ¬ μ»¨ν μ΄λλ₯Ό λ€μ λΉλν ν μ μ₯ν μ μκ³ , βhumbledesktop/fullβμ΄ μ€μ 리ν¬μ§ν λ¦¬μΈ κ²μ μμ΄λ²λ Έλ€λ©΄, μ μ΄λ―Έμ§λ₯Ό λ€μ΄λ‘λν κ²μ΄λΌ κΈ°λ€λ €μΌ ν©λλ€.
λ컀 컨ν μ΄λμμμ μ¬μ©μ μ€μ κ³Ό νμΌ μμ κΆ νμΈ
λ컀 컨ν μ΄λ λ΄μμ νΉμ λ³Όλ₯¨μ λ§€ννμ¬ μ μ¬μ©μλ‘ μ€ννλ λ°©λ²μ μκ°ν΄μ.
컨ν μ΄λ μμμ νμΌμ μμ μλ₯Ό λ³κ²½νκ³ νΈμ€νΈμμ κ΄λ ¨μ±μ μ€λͺ ν©λλ€.
λ컀 컨ν μ΄λμμ μ¬μ©μλ₯Ό νΈμ€νΈμ μΌμΉμν€λ κ²μ΄ μ€μν κ²½μ°μ λν μν©μ μ€λͺ νκ³ , νμΌμ λν μμ κΆ κ΄λ ¨ μμΈμ μΈ μν©μ λν΄ μΈκΈνλ©° μΌλ°μ μΌλ‘λ λ¬Έμ μμμ κ°μ‘°ν΄μ.
λ컀νμΌμμμ μ¬μ©μ κ΄λ¦¬ λ°©λ²?
λ컀νμΌ λ΄μμ μ¬μ©μλ₯Ό λ³κ²½νκ±°λ λ£¨νΈ κΆνμΌλ‘ μ ννλ λ°©λ²μ λν΄ μ€λͺ ν΄μ.
μ¬μ©μ μ΄λ¦, UID λλ GIDλ₯Ό λ³κ²½νλ €λ©΄ Dockerfile λλ λΉλ μμ μΈμ μ λ¬ κ°λ₯ν΄μ.
μ¬μ©μ λ³κ²½ ν λͺ λ Ήμ΄ ν΄λΉ μ¬μ©μλ‘ μ€νλλ©°, λ§μ§λ§ μ¬μ©μκ° μ»¨ν μ΄λ μ€ν μ κΈ°λ³Έ μ¬μ©μκ° λ©λλ€.
μ΄λ―Έμ§λ₯Ό νμ₯ν λ λ£¨νΈ μ¬μ© μ¬λΆμ μ£Όμνκ³ , βRUNβ λͺ λ Ήμ΄λ‘ μμν λ μ¬μ©ν μ¬μ©μλ₯Ό μ νν μ μμ΄μ.
sudoμ pseudo κΆν μ€μ μ μ£Όμ κΈ°λ₯?
μ£Όμ κΈ°λ₯μ λ κ°μ§λ‘, λ¨Όμ aptλ₯Ό μ¬μ©νμ¬ sudoλ₯Ό μ€μΉν΄μ.
κ·Έλ¦¬κ³ λ€λ₯Έ κΈ°λ₯μΌλ‘, pseudo κΆνμ μ€μ ν΄μ.
μ΄λ‘μ¨, νΉμ μ¬μ©μμκ² sudo κΆνμ λΆμ¬νκ³ sudoλ₯Ό μ€νν λλ§λ€ λΉλ°λ²νΈλ₯Ό μ λ ₯ν νμκ° μλλ‘ μ€μ ν΄μ.
λΉλ°λ²νΈλ₯Ό μ€μ νμ§ μμκΈ° λλ¬Έμ μ΄ λμμ λ³κ²½νκ±°λ νΉμ νλ‘κ·Έλ¨μ΄ sudoλ‘ μ€νλλ κ²μ μ νν μ μμ΄μ.
μ΄μ apt μ€μΉ μμ μ μ²λ¦¬νκΈ° μ μ κ΄λ ¨ λͺ λ Ήμ΄λ₯Ό λ€λ€λ΄μ.
μ΄ λͺ λ Ήμ΄λ€μλ ν΄μν μμκ° λͺ κ°μ§ μμΌλ―λ‘ κΆκΈμ¦μ ν΄μνκΈ° μν΄ λ Έλ ₯ν΄ λ³Όκ²μ.
Dockerμμ apt-get κ³Ό aptμ μ°¨μ΄μ μ λ°μ΄νΈ νμμ±
apt-getμ μλνλ μμ λ° μ€ν¬λ¦½νΈμ λ μ λ’°μ± μκ³ νΈν κ°λ₯νκ² μ¬μ©λΌμ.
λ°λ©΄, aptλ μ¬μ©μ μΉνμ μΌλ‘ μ€κ³λμ΄ μμ§λ§ μλνλ μμ μλ μ ν©νμ§ μμμ.
βapt-get updateβλ₯Ό μ€νν΄μΌ νλ μ΄μ λ μ΄μ νΈμΆλ‘ ν¨ν€μ§ λͺ©λ‘μ΄ μμ ν 무ν¨νλμμ κ°λ₯μ±μ΄ μμ΄ μ€μΉλ₯Ό μν΄ μλ‘ κ³ μ³μΌ νκ³ , λ컀 μ΄λ―Έμ§λ₯Ό λ€μ λΉλν λ μ΄μ λΌμΈμ μ¬μ€ννμ§ μμ μ μκΈ° λλ¬Έμ΄μμ.
βinstall -yβλ₯Ό μ¬μ©ν΄μΌ νλ μ΄μ λ μ¬μ©μκ° νμΈμ μμ²νμ§ μκ³ βμβλ‘ μλ΅νλλ‘ κ°μ νλ€λ κ±°μ£ .
Docker λͺ λ Ήμ΄ μ€νμ μ΄μ ?
λͺ¨λ νλ‘κ·Έλ¨μ κ°λ³μ μΈ μ€ν λͺ λ Ήμ΄λ‘ μ€μΉν μ μμ§λ§, μ΄λ λ²κ±°λ‘μΈ λΏλ§ μλλΌ κ° μ€μΉλ§λ€ ν¨ν€μ§ λͺ©λ‘μ μ λ°μ΄νΈν΄μΌ νλ λ²κ±°λ‘μμ΄ μμ΄μ.
ν¨ν€μ§ λͺ©λ‘μ μμ νλ μ΄μ λ μ΅μ’ μ΄λ―Έμ§μ ν¬κΈ°λ₯Ό μ€μ΄κΈ° μν¨μ΄λ©°, λ€λ₯Έ κ³μΈ΅μμλ μ΄λ¬ν μμ μ΄ λ°μνλ κ±Έ λ°©μ§νκΈ° μν¨μ΄μμ.
apt-get updateλ₯Ό μ€ννμ§ μκ³ μ€μΉ λͺ λ Ήμ λ΄λ¦΄ κ²½μ° λμ€μ νλ‘κ·Έλ¨ μ€μΉκ° λΆκ°λ₯ν΄μ§ μ μμΌλ―λ‘ ν λ²μ λͺ¨λ μ€νν΄μΌ ν΄μ.
λ컀 νκ²½ λ³μ μ€μ
λ컀λ₯Ό μ¬μ©ν΄ νκ²½ λ³μλ₯Ό μ€μ ν λ Debian_frontendλ₯Ό non-interactiveλ‘ μ€μ ν μ μμ΄μ.
μ€μΉ κ³Όμ μ€μ λ€λ₯Έ μ¬μ©μ ν둬ννΈλ₯Ό λ°μ§ μκ² ν΄μ.
μ€ν κ²°κ³Ό, ν° μ°¨μ΄λ₯Ό λͺ» λκΌκ³ , ꡬκΈλ§ κ²°κ³Ό μ΄κ²μ λ£μ΄λ μΌλΆ ν둬ννΈκ° νμλ μ μλ€κ³ ν΄μ.
λ°λΌμ Docker ENV λͺ λ Ήμ μ¬μ©νμ¬ μ€μ νμ§ μλ κ²μ΄ μ’μμ.
μ΄λ κ² νμ§ μμΌλ©΄ μ΄νμ λ€μ λμ§ μμλ€κ° μ¬μ©νλ λͺ¨λ μ¬μ©μμ μν₯ μ€ μ μμ΄μ.
λ컀μμμ μ€μν μ€μ μ?
Dockerλ₯Ό μ¬μ©ν λ, μ€μν κ² μ€ νλλ λ€νΈμνΉμ΄μμ.
ROSλ₯Ό μ¬μ©νλ€λ©΄, βout of the boxβλ‘λ νμ μ μλνμ§ μμμ 빨리 κΉ¨λ«κ² λμ΄μ.
Dockerλ λμ μ€μ κ°λ₯μ±μ κ°μ§ λ€νΈμνΉ μμ€ν μ κ°μ§κ³ μμ΄μ 볡μ‘ν μμ μ ν μ μμ£ .
λ‘λ΄ μμ© νλ‘κ·Έλ¨μμλ μ΄λ₯Ό κ³ λ €νμ§ μκ³ λͺ¨λ κ²μ΄ μ μμ μΌλ‘ λμνκΈΈ μν λ, βnetwork=hostλ₯Ό μΆκ°νμ¬ νΈμ€νΈμ λ€νΈμνΉμ 곡μ νλλ‘ μ§μνκ³ , βipc=hostλ₯Ό μΆκ°νμ¬ κ³΅μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νλλ‘ μ§μνμ¬ μν΅ μμ€ν μμ μ¬μ© κ°λ₯νκ² ν΄μ.
λ컀 λνλ¨ΌνΈμ λ΄μ©μ 무μμΈκ°μ?
λ컀 λνλ¨ΌνΈλ μ΅μ μ λν΄ μΉμ νκ² μ€λͺ νλ©°, GUI νλ‘κ·Έλ¨ μ€ν λ°©λ²λ λ€λ£¨μ΄μ.
λ컀νμΌμ μμ±ν λ Entry pointμ commandλ₯Ό μ§μ ν μ μμ§λ§, λ κ°μ§κ° μνΈμμ©νλ λ°©μμ μ‘°κΈ λ³΅μ‘νμ£ .
λν νΉμ ν¨ν΄μ μκ°ν΄ μμ½κ² μ¬μ©ν μ μλ λ°©λ²μ μΈκΈν΄μ.
ROS μ΄λ―Έμ§ λ° μνΈλ¦¬ ν¬μΈνΈ μ€μ λ°©λ²μ?
ROS μ΄λ―Έμ§ μ€μ μ bash μ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν΄ λ°νμ νκ²½μ μ€μ νκ³ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ κ²μ΄μμ.
μ΄ μ€ν¬λ¦½νΈλ μ€ν κ°λ₯ν λνΌμ²λΌ μλνλ©° μ λ¬λ μΈμλ μΆκ°λ‘ μ 곡λ λ΄μ©μ ν¬ν¨νμ¬ μ€νλΌμ.
μνΈλ¦¬ ν¬μΈνΈ μ€ν¬λ¦½νΈλ μ€λ₯ μ νΈλ₯Ό νμ±ννκ³ ROS μ€μΉλ₯Ό μ€ννκ³ μ λ¬λ λ΄μ©μ μΆλ ₯νλ©° μ€νλΌμ.
Dockerfileμ μΆκ° μ§μλ¬Έμ λ£μ΄ μ€μ μ μλ£νκ³ λͺ λ Ήμ μ λ¬νκΈ° μν΄ λͺ λ Ή μ§μλ¬Έμ μ¬μ©νλ©°, μ΄λ―Έμ§λ₯Ό λ€μ λΉλνμ¬ μ€ν μ μ λ¬λ μΈμλ₯Ό νμΈν μ μμ΄μ.
νλ‘κ·Έλ¨ μ€ν ν PCBWay μκ° λκΈ°λ?
νλ‘κ·Έλ¨μ΄ νΉμ λ²μ μ ROS λ° Linuxμμ μ€ν μ€μ΄λΌλ μ¬μ€μ μΈμ§ λͺ»ν μ±, λ¨λ μΌλ‘ κ·Έ νλ‘κ·Έλ¨μ μ€νν κ² κ°μμ.
νν 리μΌμμ λ€λ€λ λ΄μ©μ΄ λ§μλ°, μ΄μ λ€μ λ¨κ³μμλ κ·Έλν½ νλ‘κ·Έλ¨μ λμμν€λ κ²μ΄ λ 볡μ‘ν΄μ§ κ²μΌλ‘ μμλΌμ.
λ°λΌμ μ μ μ¬μ΄κ°λ©° μ΄ λμμμ νμμ¬μΈ PCBWayλ₯Ό νμΈνκΈ°λ‘ νμ΄μ.
PCBWayλ PCB κ΄λ ¨ κ΅λ΄ μ΅λ νλΈλ‘ PCB μ μ λΏλ§ μλλΌ μ‘°λ¦½κΉμ§ κ°λ₯νλ©°, 3D νλ¦°ν , CNC κ°κ³΅, μνΈ κΈμ κ°κ³΅, μ¬μΆ μ±ν λ± λ€μν μ νμ μ 곡ν΄μ.
PCBκ° νμνμ§ μλ€λ©΄, λ€μν λ€λ₯Έ μ νλ μ 곡νλ, μ°½μμ μΈ μμ΄λμ΄λ₯Ό μ€ννκ³ μ νλ€λ©΄ λ§ν¬λ₯Ό ν΅ν΄ PCBWayλ₯Ό λ°©λ¬Έν΄λ³΄μΈμ.
λ컀 λ΄μμ κ·Έλν½μ€ μ¬μ©νκΈ°
λ컀 λ΄μμ κ·Έλν½μ€λ₯Ό μ λλ‘ μλμν€λ €λ©΄ μ¬μ©νκ³ μλ CPU μ μ‘°μ¬, μ€ννλ €λ νλ‘κ·Έλ¨, νμν κΈ°λ₯ μ νμ λ°λΌ 볡μ‘ν μ μμ΄μ.
X μλμ°μ¦λ₯Ό μ¬μ©νλ€κ³ κ°μ νλ©°, μ¬μ© κ°λ₯ν λ°©λ²μ μν©μ λ°λΌ λλ μ μ ν κ²μ΄ μ‘΄μ¬ν΄μ.
μ¬μ©μ κΆνκ³Ό Xμ λν μ κ·Ό κΆνμ΄ μ€μνλ©°, X λλ©μΈ μμΌμ λ ΈμΆμμΌμΌ ν΄μ.
λν, ν΄λΉ μ¬μ©μλ‘ μ€νλ 컨ν μ΄λλ€μ΄ μ κ·Όν μ μλλ‘ λͺ¨λ μ¬μ©μμκ² κΆνμ λΆμ¬νκ±°λ νΉμ μ¬μ©μμκ² κΆνμ λΆμ¬ν μ μκ³ , νκ²½μ€μ μμ νμλ νμμ ν΄λΉ κΆνμ μ·¨μν μ μμ΄μ.
λ§μ§λ§μΌλ‘, X λμ€νλ μ΄λ₯Ό ν λΉνκ³ , νΈμ€νΈμμ μ¬μ© μ€μΈ λμ€νλ μ΄λ₯Ό μ¬μ©νλλ‘ Dockerμ μ§μνμ¬ νΉμ κ°μ μ 곡νλ λμ μ νΈμ€νΈ λμ€νλ μ΄λ₯Ό μ¬μ©νλλ‘ μ€μ ν΄μ.
ROS2 ν₯ν μ½ν μΈ μμ μ?
ROS2 ν ν½ λͺ©λ‘μ΄ μλ 컨ν μ΄λλ₯Ό μμνκ³ RVizλ₯Ό μ€ννλ©΄ κ·Έλν½μ΄ μ€νλ κ²μΌλ‘ κΈ°λλκ³ , CUDAμ λ―Έλ λΉλμ€μμ GPU κ°μμ λν΄ μμΈν λ€λ£° μμ μ΄μμ.
λ‘μΌμΌκ³Ό μκ°λ κ°λ μ μννΈμ¨μ΄κ° νΉμ λ°μ΄ν° μ‘°κ°μ μ¬μ©μμκ² μ΄λ»κ² ννν΄μΌ νλμ§ μλ €μ£Όλ μμ€ν μΈλ°, 곡μ ROS λ컀 μ΄λ―Έμ§λ₯Ό μ¬μ©νλ©΄ μ΄ μμ μ΄ μ²λ¦¬λμ§λ§, Ubuntu κΈ°λ³Έ μ΄λ―Έμ§μμ μμ±νλ κ²½μ° μ£Όμν΄μΌ ν΄μ.
ROS2 μλμμ± μ€μ λ°©λ²μ?
ROS2μμ μλμμ±μ μΌλΆ μ€μ μ΄ νμνλ©°, .bashrc νμΌμ μμ€ λͺ λ Ήμ΄ μΆκ°νμ¬ ν΄κ²°ν μ μμ΄μ.
ν°λ―Έλμ΄ μ€νλ λλ§λ€ .bashrc νμΌμ λͺ λ Ήμ΄κ° μ€νλλλ‘ κ΅¬μ±νλ©΄ ros2λ colconκ³Ό κ°μ λͺ λ Ήμ΄λ₯Ό μλμΌλ‘ μμ±ν μ μμ΄μ.
μλμμ±μ΄ μλνμ§ μμ λλ python3-ardcompleteμ μ€μΉνκ±°λ bash completionμ μλν μ μμ΄μ.
λν, λ€λ₯Έ μ μ©ν λꡬ, νλ‘κ·Έλ¨ λ° λΌμ΄λΈλ¬λ¦¬λ νμ© κ°λ₯ν΄μ.
Docker μ΄λ―Έμ§ κ΅¬μ± λ° νμ₯ λ°©λ²μ?
κΈ°λ³Έ μ€μΉμμλ ν μ€νΈ νΈμ§κΈ°, ν₯μ€ νΈμ§κΈ°, μ»΄νμΌλ¬, λ¦°ν°μ κ°μ κ²λ€μ΄ νμν΄μ.
λ§€μ° μΌλΆλ§ λ€λ£¬ κ²μ΄λ©°, μΈλΆμ¬νμ κ°μΈλ§λ€ λ€λ₯Ό κ±°μμ.
νμμ μΈ κ²μ΄ λͺ¨λ μλ κ²½μ°, ν΄λΉ μμ λκΈμ΄λ Articulated Robotics Discourse Forumμ λ Όμ μ€λ λμμ μλ €μ€μ.
λ§μ§λ§μΌλ‘ λ컀μ κΈ°κΈ°λ₯Ό μ λ¬νλ λ°©λ²μ λ€μ μμμ λ£κΈ°λ‘ κ²°μ νμ§λ§, κ²μν¨λ, μΉ΄λ©λΌ, μλ¦¬μΌ κΈ°κΈ° λ±μ΄ λ μ μμ΄μ.
νμ¬ μ¬μ© μ€μΈ run λͺ λ Ήμ΄λ λ§μ μΈμλ€μ κΈ°μ΅ν΄μΌ νκ³ μ€μ λ‘ μ¬μ©νλ κ²μ μ¬μ ν λ€μ 볡μ‘νμ£ .
κ·Έλμ λ€μ μμμμλ λͺ¨λ μ€ν μ μΈμλ€μ μ€μ νλ λ κΉλν λ°©λ²μΈ Docker Composeμ μ¬λ¬ νλ«νΌμμ κ°λ°μ κ°νΈνκ² νλ VS Code Dev containersλ₯Ό μ΄ν΄λ³Ό κ±°μμ.
μ΄λ€ κ²λΆν° λ³Όμ§λ μμ§ κ²°μ νμ§ μμμΌλ, νΉλ³ν λ³΄κ³ μΆμ κ²μ΄ μλ€λ©΄ μλ €μ€μ.