릴리스 2.9

3561 단어 opensource

내 작품



Apply Dockerfile best practices from Snyk recommendations #1668
작동하는 Dockerfile 목록:
  • https://github.com/Seneca-CDOT/telescope/pull/3231
  • https://github.com/Seneca-CDOT/telescope/pull/3256
  • https://github.com/Seneca-CDOT/telescope/pull/3236
  • https://github.com/Seneca-CDOT/telescope/pull/3235
  • https://github.com/Seneca-CDOT/telescope/pull/3255
  • https://github.com/Seneca-CDOT/telescope/pull/3238

  • https://github.com/Seneca-CDOT/telescope/pull/3307 (진행 중, 실패한 e2e 테스트 수정)
  • https://github.com/Seneca-CDOT/telescope/pull/3239
  • https://github.com/Seneca-CDOT/telescope/pull/3309

  • 전반적으로 PR 중 하나가 검토되면 꽤 간단했고 템플릿으로 사용할 수 있습니다.

    프로세스 단계 중 하나



    참조



  • 이미지 버전의 경우 특정 버전에 대한 이미지를 사용해야 합니다(M1이 작동하려면 더 많은 도구가 필요하므로 패키지 설치에 알파인 버전을 사용하지 않음).

  •  - FROM node:lts as base
     + FROM node:16 as base
    


  • 멀티 스테이징 설정

  •  + FROM node:16 as base
     + FROM base as dependencies
     + FROM node:16-alpine3.15 as deploy
    


    기본 단계는 패키지 설치에 필요한 도구를 설치하는 단계입니다.
    종속성 단계는 node_modules를 설치하기 위한 것입니다.
    배포 단계는 빌드 컨텍스트에서 소스 코드를 복사하고 종속성에서 node_modules를 복사하고 서비스를 실행하는 단계입니다.
  • 노드 사용자로 노드 앱 실행

  • + COPY --chown=node:node . .
    + USER node
    


    이를 통해 노드 사용자는 소스 코드를 읽을 수 있는 권한을 가질 수 있습니다.
  • 상태 확인 추가

  • + ENV PORT
    + HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
    +   CMD wget --no-verbose --tries=1 --spider localhost:${DEPENDENCY_DISCOVERY_PORT}/healthcheck || exit 1
    


    이것이 제가 만든 변경 사항입니다. 한 가지@humphd는 ARM 아키텍처에서 노드 알파인 이미지로 응용 프로그램을 빌드하는 것으로 나타났습니다. 빌드하려면 더 큰 노드 이미지를 사용해야 합니다. See PR 3336

    좋은 웹페이지 즐겨찾기