AWS Elastic Beanstalk Docker Does not support Multi-Stage Build

后端 未结 2 1742
逝去的感伤
逝去的感伤 2020-12-15 11:28

I am struggling to get my build deploying to AWS on Docker. I have no idea where the solution lays as this is my first time with Docker. I have got it all working fine local

相关标签:
2条回答
  • 2020-12-15 12:13

    I had the same problem. Actually I check the following rows in my log file:

    2020/05/26 17:26:30.327310 [INFO] Running command /bin/sh -c docker pull node:alpine as builder
    2020/05/26 17:26:30.369280 [ERROR] "docker pull" requires exactly 1 argument.
    

    As you can seen, it tries to make a 'docker pull' with 3 arguments:

    1. node:alpine
    2. as
    3. builder

    and of course, that is not possible because it requires only 1 argument. Thus, apparently AWS Elastic Beanstalk doesn't support stage naming. For this reason I solved using an Unnamed builder:

    FROM node:13-alpine
    

    and in the end:

    COPY --from=0 /opt/ng/dist/angular-universal-app/browser /usr/share/nginx/html
    

    Final Dockerfile:

    FROM node:13-alpine
    
    WORKDIR /opt/ng
    COPY package.json package-lock.json ./
    RUN npm install
    
    ENV PATH="./node_modules/.bin:$PATH"
    
    COPY . ./
    RUN ng build --prod
    
    FROM nginx:1.18-alpine
    COPY nginx.conf /etc/nginx/conf.d/default.conf
    COPY --from=0 /opt/ng/dist/angular-universal-app/browser /usr/share/nginx/html
    

    For me it works using that solution. If someone has any problem, please share the last-100-lines log

    0 讨论(0)
  • 2020-12-15 12:25

    I have seen this error when using a solution stack that uses 'Amazon Linux 2'. These platforms are new and have some ongoing issues.

    Amazon Linux 2 support for AWS Elastic Beanstalk is in beta release and is subject to change.

    • https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-beta.html

    Please use a solution stack that has 'Amazon Linux' in the name. You should not face the issue there.

    0 讨论(0)
提交回复
热议问题