Perlanet 컨테이너 구축
작년에 나는 몇 시간마다 GitHub Actions를 사용하는 방법을 알아내어 GitHub Pages에서 사이트를 호스팅할 수 있게 되었습니다. – GitHub의 누군가는 반드시 언젠가는 알아차릴 것입니다!)
어제 저는 이러한 사이트 중 하나에서 간단한 유지 관리를 수행하고 있었는데, 이 사이트를 다시 구축하는 데 상당한 시간(즉, 4~5분)이 걸린다는 사실을 깨닫고 속도를 높일 수 있는 방법이 있는지 궁금해지기 시작했습니다. GitHub의 리소스를 적게 사용합니다. 문제는 Perlanet이 꽤 무거운 모듈이고 매번 다시 빌드할 때마다 원래의 Ubuntu 컨테이너에 해당 모듈(따라서 수십 개의 다른 모듈)을 설치한다는 것입니다.
그렇게 말하면 해결책은 뻔하다.
GitHub가 제공하는 표준 컨테이너에서 GitHub Actions를 실행할 필요가 없습니다. 퍼블릭 컨테이너 호스팅 서비스에서 사용할 수 있는 모든 컨테이너에서 실행할 수 있습니다. 따라서 해결책은 Perlanet 컨테이너를 구축하고 대신 이를 사용하여 작업을 실행하는 것이었습니다. 그래서 어제 한 시간 정도를 보냈습니다.
내가 만든 Dockerfile은 다음과 같습니다.
FROM perl:latest
RUN apt-get update && \
apt-get -y upgrade && \
apt-get install -y build-essential && \
apt-get install -y cpanminus libtidy-dev libxml++2.6-dev libhtml-tidy-perl && \
cpanm --notest Test::Exception && \
cpanm --notest Perlanet && \
cpanm --notest LWP::Protocol::https
(분명히) available on GitHub 누군가가 Docker에 대한 다소 끈질긴 지식을 개선하고 싶어하는 경우입니다.
HTML::Tidy(Perlanet의 전제 조건 중 하나)에 Test::Exception이 필요하기 때문에 Test::Exception을 명시적으로 설치하고 표준 설치 절차에서 설치하지 않는 이유를 알 수 없습니다. 그리고 LWP::Protocol::https는 엄밀히 말하면 Perlanet에서 요구하지 않지만 HTTP를 통해 사용할 수 있는 웹 피드에만 액세스하는 경우 현대 웹에서 멀리 가지 못할 것입니다.
약간의 Docker Hub 설정 및 컨테이너는 available for everyone to use입니다(그리고 리포지토리에 커밋할 때마다 자동으로 다시 빌드됨).
그런 다음 내 컨테이너를 사용하도록 내 GitHub Actions를 변경하는 경우였습니다. 다음은 그렇게 한 one of the commits의 예입니다.
나는 여기 파티에 꽤 늦었다는 것을 깨닫지만 이것이 유용한 패턴이라고 생각합니다. 사용자에게 서비스를 제공하기 위해 존재하는 Perl 라이브러리(또는 실제로 다른 소프트웨어)가 있는 경우 해당 소프트웨어의 컨테이너화된 버전을 제공하는 것이 좋습니다.
그리고 사이트 재구축 시간이 4~5분에서 약 45초로 단축되었다는 소식을 전하게 되어 기쁩니다.
게시물 Building a Perlanet Container이 Perl Hacks에 처음 나타났습니다.
Reference
이 문제에 관하여(Perlanet 컨테이너 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/davorg/building-a-perlanet-container-43cm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)