当前位置: 首页 > 面试题库 >

AWS Elastic Beanstalk Docker不支持多阶段构建

章德惠
2023-03-14
问题内容

我正在努力将我的构建部署到Docker上的AWS上。我不知道解决方案在哪里,因为这是我第一次使用Docker。我已经在本地一切正常,但是当我部署时,在Elastic
Beanstalk中出现以下错误:

2020/04/30 05:35:02.330900 [ERROR] An error occurred during execution of command [app-deploy] - [Docker Specific Build Application]. Stop running the command. Error: failed to pull docker image: Command /bin/sh -c docker pull node:13.3.0 AS compile-image failed with error exit status 1. Stderr:"docker pull" requires exactly 1 argument.
See 'docker pull --help'.

这是我的Docker文件的样子:

FROM node:13-alpine as builder

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=builder /opt/ng/dist/angular-universal-app/browser /usr/share/nginx/html

有人可以指出正确的方向吗?还是Elastic Beanstalk的Docker版本不支持这种多阶段构建方法?


问题答案:

使用使用“ Amazon Linux 2”的解决方案堆栈时,我已经看到此错误。这些平台是新的,并且存在一些持续存在的问题。

Beta版将对Amazon Elastic Linux 2 AWS Elastic Beanstalk提供支持,并且可能会发生变化。

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

请使用名称为“ Amazon Linux”的解决方案堆栈。您不应在那里遇到问题。



 类似资料:
  • 为什么buildspec文件支持多个构建阶段<代码>安装、预构建、构建、后构建?如果我将所有构建步骤都放在一个阶段中,我是否做错了什么?在这些阶段,除了保持某种结构之外,还有什么非常有用的东西吗?

  • 多阶段构建 之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用两种方式: 全部放入一个 Dockerfile 一种方式是将所有的构建过程编包含在一个 Dockerfile 中,包括项目及其依赖库的编译、测试、打包等流程,这里可能会带来的一些问题: 镜像层次多,镜像体积较大,部署时间变长 源代码存在泄露的风险 例如,编写 app.go 文件,该程序输出 H

  • Docker的口号是 Build,Ship,and Run Any App,Anywhere,在我们使用 Docker 的大部分时候,的确能感觉到其优越性,但是往往在我们 Build 一个应用的时候,是将我们的源代码也构建进去的,这对于类似于 golang 这样的编译型语言肯定是不行的,因为实际运行的时候我只需要把最终构建的二进制包给你就行,把源码也一起打包在镜像中,需要承担很多风险,即使是脚本语

  • 我正在尝试将Eclipse/ANT项目转换为Android Studio 我正在尝试设置一个多项目构建。我目前的结构是: 相关构建文件的内容如下: 该库项目清洁和建设罚款自己。 堆栈跟踪是: 如蒙指导,不胜感激。我是不是把这个项目的配置都搞错了?我甚至不确定它是否与我的构建配置有关。

  • 问题内容: 如何在中指定多阶段构建? 对于每个变体(例如dev,prod …),我都有一个包含2个docker文件的多阶段构建: 开发人员:+ 或产品:+ 文件(所有变体通用): 档案: 档案: 没有docker-compose,我可以构建为: 根据compose-file doc,我可以指定要构建的Dockerfile。 但是,如何在其中指定2个Dockerfile (用于多阶段构建)? 问题答

  • 实战多阶段构建 Laravel 镜像 本节适用于 PHP 开发者阅读。 准备 新建一个 Laravel 项目或在已有的 Laravel 项目根目录下新建 Dockerfile .dockerignore laravel.conf 文件。 在 .dockerignore 文件中写入以下内容。 .idea/.git/vendor/node_modules/public/js/public/css/ya