
일단 해당 빌드는 다시 실행시켜서 공간 부족 메시지가 출력되지 않음
docker image prune -a -f
stage('Clean Up Docker Containers and Volumes') {
steps {
sshagent(['my-ssh-key']) {
sh '''
ssh -o StrictHostKeyChecking=no ubuntu@{my_public_DNS} "
sudo docker-compose down -v
sudo docker system prune -a -f
"
'''
}
}
}
docker-compose.yml에 데이터베이스 볼륨을 명시적으로 관리, 삭제하지 않도록 설정(docker-compose.yml 예시)
version: '3.8' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql web: image: my-web-app depends_on: - db volumes: db_data:
데이터베이스 볼륨을 삭제하기 전에 백업을 수행하고, 재구축 후에 복원(백업 및 복원 예시 스크립트)
docker exec db_container_name mysqldump -u root --password=root database_name > backup.sql docker-compose down -v sudo docker system prune -a -f docker-compose up -d docker exec -i db_container_name mysql -u root --password=root database_name < backup.sql
Docker 이미지를 삭제하지 않고, 최신 상태로 유지하여 시간 단축(Jenkinsfile 예시)
pipeline { agent any stages { stage('Clean Up') { steps { script { sh 'docker-compose down' sh 'docker image prune -f' } } } stage('Update Images') { steps { script { sh 'docker-compose pull' } } } stage('Build and Deploy') { steps { script { sh 'docker-compose up -d' } } } } }