1

Elastic Beanstalk까지 연결된 Dockerfile을 사용하여 node.js 반응 기반 동형 응용 프로그램을 배포하려고합니다.Node.js Docker를 사용하여 Elastic Beanstalk를 통해 배포

도커를 로컬로 실행하면 성공적으로 실행할 수 있습니다. 그러나 npm 설치 명령이 완료하는 데 상당한 시간이 걸리는 것으로 나타났습니다.

상기 EB가 거의 아마존 서비스를 충돌 또는 나는이 같은 오류가 deploy 명령을 사용하여 응용 프로그램을 배포하려고 할 때 :

ERROR: Timed out while waiting for command to Complete

내 생각 엔이 아래로 내 node_modules에 있다는 것이다되는 폴더 큰 300MB. 또한 config.yml 파일에 이슈 선언을 추가하고 그런 식으로 배포하려고 시도했지만 동일한 오류가 발생합니다.

노드 응용 프로그램을 AWS Beanstalk에 배포하는 최상의 방법이 있습니까? 아니면 수동으로 EC2 인스턴스를 설정하고 코드 커밋 (Code Commit) git 후크에 의존하는 가장 좋은 방법입니까?

FROM node:argon 
ADD package.json /tmp/package.json 
RUN npm config set registry https://registry.npmjs.org/ 
RUN npm set progress=false 
RUN cd /tmp && npm install --silent 
RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app 

WORKDIR /usr/src/app 
ADD . /usr/src/app 

EXPOSE 8000 

CMD npm run build && npm run start 

... 이것은 내 config.yml 파일입니다 :

내 Dockerfile은 다음과 같습니다

branch-defaults: 
    develop: 
    environment: staging 
    master: 
    environment: production 
global: 
    application_name: website-2016 
    default_ec2_keyname: key-pair 
    default_platform: 64bit Amazon Linux 2015.09 v2.0.6 running Docker 1.7.1 
    default_region: eu-west-1 
    profile: eb-cli 
    sc: git 

답변

1
    당신은 (더 현재에 내가 당신의 플랫폼을 변경해야합니다
  1. ' m 도우커 도커 1.9.1 사용, 최신 버전이있을 수 있습니다.
  2. 도커 허브의 이미지를 사용하여 내 애플리케이션을 빈 줄에 배포하고 있습니다. CI 서버를 사용하여 빌드 한 다음 도커 허브에서 이미지를 가져 오는 배포 명령을 실행합니다. 이렇게하면 빌드 오류 (및 빌드 시간)를 많이 절약 할 수 있으며 Docker 불변 인프라의 철학과 실제로 더 많이 관련됩니다.
  3. node_modules의 경우 300MB는 작지 않지만 문제가 없어야합니다. 이 크기의 종속성과 코드를 정기적으로 배포합니다.
+0

의견을 보내 주셔서 감사합니다. Docker 버전을 업데이트하고 문제가 해결되는지 확인하겠습니다. –

+1

NP, 그러나 이것은 일반적인 팁일 뿐이며, 아마도 여러분의 문제를 해결하지 못할 것입니다. 컨테이너 저장소 (AWS ECR 또는 도커 허브와 같은)를 사용하여 이미지를 관리하고 매번 빌드하지 않고 콩 줄기로 가져 와서 더 나은 결과를 얻을 수 있습니다. –

+0

자, 이것 좀 봐. Dockerfile을 사용하고 eb를 배포하기 전에 컨테이너에 문제가 없었기 때문에 아직 컨테이너 서비스를 보지 못했습니다. –