CI/CD λ°°ν¬ μ€ docker stop λͺ
λ Ήμ΄ permission denied μ€λ₯λ₯Ό λ΄λ±μ μ μμΌμ κ°μ?
Docker κ·Έλ£Ήκ³Ό sudo κΆνμ λͺ¨λ κ°μ§ κ³μ μμλ λΆκ΅¬νκ³ λ°μνλ μ΄μμ μμΈμ λλΆλΆ Linux AppArmorμ docker-default νλ‘νμΌμ
λλ€.
μ΄ κΈμμλ 곡μ λ¬Έμλ₯Ό κΈ°λ°μΌλ‘, AppArmor docker-defaultλ₯Ό μ°ννκ±°λ λΉνμ±ννλ λ°©λ²μ μ 리ν©λλ€.
sudo docker stop eventor-front-blue-1
# Error response from daemon: cannot stop container: eventor-front-blue-1: permission denied
eventor κ³μ μ Docker κ·Έλ£Ήμλ μν΄ μκ³ , sudo κΆνλ μμdocker stop λͺ
λ Ήμμ κΆν μ€λ₯docker-defaultμ μ νdocker-defaultλΌλ AppArmor 보μ νλ‘νμΌμ κΈ°λ³ΈμΌλ‘ μ μ©ν©λλ€./etc/apparmor.d/μ κ°μ κ²½λ‘μ μ‘΄μ¬νμ§ μμ΅λλ€.unconfined μ€μ )docker run --rm -it --security-opt apparmor=unconfined hello-world
--security-opt apparmor=unconfined μ΅μ
μ ν΅ν΄ AppArmor μ μ© μμ΄ μ»¨ν
μ΄λλ₯Ό μ€νν©λλ€.
docker-compose.ymlμ μ μ©services:
eventor-front-blue:
image: dlrudgjs104/eventor-front:blue-1
container_name: eventor-front-blue-1
ports:
- "8001:8080"
volumes:
- ./blue-1-logs:/app/logs
security_opt:
- apparmor=unconfined
μ΄ μ€μ μ μ μ©νλ©΄
docker-defaultκ° μμ μ μ©λμ§ μμ΅λλ€.
sudo apparmor_parser -R /etc/apparmor.d/docker
# File not found...
docker-defaultλ νμΌμ΄ μλλΌ λ©λͺ¨λ¦¬ μμ λμ νλ‘νμΌμ
λλ€.AppArmorκ° λ무 μ νμ μ΄λΌλ©΄, μμ€ν λ 벨μμ AppArmorλ₯Ό μμ ν λΉνμ±ννλ λ°©λ²λ μμ΅λλ€.
sudo aa-remove-unknown
sudo systemctl restart docker
aa-remove-unknown: μμ€ν
μ λ±λ‘λμ§ μμ AppArmor νλ‘νμΌ μ κ±°systemctl restart docker: Docker μ¬μμ (λ³κ²½ μ¬ν λ°μ)β οΈ μ£Όμ
μ΄ λ°©λ²μ μ¬λΆν μ AppArmorκ° λ€μ νμ±νλ©λλ€.
μμ ν ν΄μ λ₯Ό μν΄μλ GRUB μ€μ λ³κ²½ λ± μꡬ μ€μ μ΄ νμν©λλ€.