AWS Elastic Beanstalk Docker Does not support Multi-Stage Build
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 builder2020/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:
- node:alpine
- as
- 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-alpineWORKDIR /opt/ngCOPY package.json package-lock.json ./RUN npm installENV PATH="./node_modules/.bin:$PATH"COPY . ./RUN ng build --prodFROM nginx:1.18-alpineCOPY nginx.conf /etc/nginx/conf.d/default.confCOPY --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
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.
Please use a solution stack that has 'Amazon Linux' in the name. You should not face the issue there.