좋은 관행
다음 내용을 반드시 확인할 것을 강력히 권장합니다 Docker의 모범 사례 컨테이너와 보안을 최적화하는 최선의 방법을 배우는 데 도움이 됩니다.
다음은 Edgegap과 완벽하게 작동하도록 컨테이너를 최적화하기 위한 몇 가지 팁입니다.
버전 관리
컨테이너 빌드의 버전 관리는 필수적인 측면입니다. 많은 환경에서 태그가 이미 머신에 존재하면 이미지를 다시 가져오지 않기 때문입니다.
태그 latest
기본적으로 빌드 명령을 실행하면:
ARM CPU(Mac M1, M2 등) 사용자의 경우 다음을 추가하세요 --platform linux/amd64 빌드 명령에 대한 옵션.
docker build -t repo/example .이 출력은 이 빌드에 태그를 부여합니다 latest
다음은 동일한 출력을 생성합니다:
docker build -t repo/example:latest .하지만 기억하세요, latest 는 다른 태그와 마찬가지로 단순한 태그일 뿐이며 항상 최신 빌드를 나타내는 것은 아닙니다.
예:
docker build -t repo/example:latest .
# 코드에 일부 수정을 수행합니다
docker build -t repo/example:0.1 .Edgegap은 귀하의 태그를 업데이트하지 않습니다 latest 그리고 버전 0.1 새 코드보다 앞서게 될 것입니다.
태깅 예시
시스템에서 태그를 올리거나(버전 증가) 이미지 빌드마다 버전을 변경하여 사용을 보장하고 시스템에 이전 버전이 캐시되는 것을 방지하는 것을 권장합니다. 이미 시맨틱 버전 관리 시스템을 사용하거나 빌드마다 버전을 증가시키는 시스템을 사용 중이라면 Docker 빌드에 자동으로 태그를 붙이는 과정을 쉽게 만들 수 있습니다.
인수로 전달한 버전과 일치하는 버전으로 Dockerfile을 빌드하는 Bash 스크립트 예시입니다.
이 예시는 주어진 버전으로 빌드하고, 리포지토리에 태그를 붙이고, 푸시합니다(프라이빗 리포지토리를 사용하는 경우 먼저 로그인하는 것을 잊지 마세요).
이 스크립트를 사용하면 이제 앱 빌드 버전을 사용하여 올바르게 호출할 수 있습니다.
예: 새 게임 서버 버전을 빌드합니다 2021.01.29.1234
이유
빌드마다 태그를 올리는 주된 이유는 Edge에서의 캐싱을 방지하기 위해서입니다.
서버를 몇 초 만에 부팅할 수 있도록 이미지를 미리 풀링(pull)하고 수요에 따라 인스턴스 수만 늘립니다. 이미지가 Edge에 이미 존재하지 않을 때만 풀하기 때문에 Pull 정책의 빈도를 보장할 수 없습니다.
따라서 기본적으로 latest 태그나 다른 지속적인 태그를 사용하면 문제가 발생할 수 있습니다. 빌드를 업데이트하여 Edgegap에 배포하더라도 Edge가 새 버전 을(를) 가져오지 않을 것이기 때문입니다. 태그가 동일하기 때문입니다.
만약 당신이 절대 사용하지 않는다면 시맨틱 버전 관리, Edgegap은 강력히 읽어보고 이를 빌드 버전 관리에 적용할 것을 권장합니다!
마지막 업데이트
도움이 되었나요?

