用于 Amazon AWS 的 Dockerfile 脚本

Posted

技术标签:

【中文标题】用于 Amazon AWS 的 Dockerfile 脚本【英文标题】:Dockerfile Script for Amazon AWS 【发布时间】:2014-12-28 05:22:59 【问题描述】:

我想在 Amazon 的 Elastic Beanstalk 上启动我的 Web 应用程序(Play 2.2 应用程序)。 Play 应用程序是一个独立的 myApp.zip 存档。

我的 Docker-Archive 包含: -myApp.zip(包含 myApp.zip/myApp-1.0-SNAPSHOT/bin/myApp 下的启动文件) -Dockerfile 包含以下脚本:

来自 dockerfile/java 添加 myApp-1.0-SNAPSHOT.zip /usr/local/myApp WORKDIR /usr/local/myApp 运行 myApp-1.0-SNAPSHOT/bin/myApp 暴露 9000

我收到以下错误:

无法构建 Docker 映像 aws_beanstalk/staging-app: fabd24 正在删除中间容器 f653f7395124 第 3 步:运行 myApp-1.0-SNAPSHOT/bin/myApp ---> 在 b9e18d52cc99 2014/10/31 10:51:52 中运行不能mkdir: /usr/local/myApp 不是目录。查看快照日志了解详情。

似乎第二行 (ADD ...) 没有任何效果。当我通过 SSH 连接到节点时,我也找不到 /usr/local/myApp 目录。怎么了?

【问题讨论】:

这可能是一个愚蠢的建议,但在 ADD 的文档中,他们使用带有斜杠作为目标目录的示例。 /usr/local/myApp/ 会起作用吗? 【参考方案1】:

您正在添加一个 zip 文件并将其视为一个目录。你需要先解压。

ADD myApp.zip /usr/local/myApp.zip
WORKDIR /usr/local
RUN unzip /usr/local/myApp.zip

【讨论】:

我将文件更改为 FROM dockerfile/java RUN mkdir /usr/local/myApp ADD myApp-1.0-SNAPSHOT.zip /usr/local/myApp/myApp-1.0-SNAPSHOT.zip WORKDIR /usr /local/myApp RUN 解压 /usr/local/myApp.zip EXPOSE 9000 ;但我什至看不到 /usr/local/myApp 目录:(( WORKDIR /usr/local.还没有 myApp 目录:) 为什么?第二行是 RUN mkdir /usr/local/myApp 。没看懂 哦,我的错。你需要 RUN unzip /usr/local/myApp/myApp-1.0.SNAPSHOT.zipp

以上是关于用于 Amazon AWS 的 Dockerfile 脚本的主要内容,如果未能解决你的问题,请参考以下文章

用于复杂查询的 Google Firebase 与 Amazon AWS [关闭]

AWS SimpleDB 的 Amazon 资源名称 (ARN)

AWS Amplify 和 amazon-cognito-identity-js 的区别?

何时通过 AWS Glue ETL 使用 Amazon Redshift 频谱来查询 Amazon S3 数据

Elastic Beanstalk V3.0.1 (Amazon Linux 2) 中用于配置更新的挂钩

用于节点 64 位和环境的 Amazon Elastic Beanstalk .config