我有一个最近被文档化的web应用程序,我想在AWS ECS上运行,一些基本的概念(我没有在AWS文档中解释)正在让我失望。
首先,当您编辑/配置一个新容器时,它要求您指定要使用的映像,但也有一个Environment部分:

入口点、命令和工作目录字段与我在创建Docker映像时已经指定的命令非常相似(以下是我的Dockerfile):
FROM openjdk:8
RUN mkdir /opt/myapp
ADD build/libs/myapp.jar /opt/myapp
WORKDIR /opt/myapp
EXPOSE 9200
ENTRYPOINT ["java", "-Dspring.config=.", "-jar", "myapp.jar"]因此,如果ECS要求我提供一个映像(该映像已经使用这个Dockerfile构建),那么为什么我需要为WORKDIR、EXPOSE、ENTRYPOINT、CMD等重新指定完全相同的值呢?
另外,在ECS之外,我运行容器的方式如下:
docker run -it -p 9200:9200 -d --net="host" --env-file ~/myapp-local.env --name myapp myapp注意我是如何指定env文件的?ECS是否支持env文件,还是真的必须将env文件中的每个env var输入到这个UI中?
我还看到在船底附近有一个码头标签部分:

这些是不同于env的,还是可以互换的?
发布于 2018-03-16 05:52:19
是的,您需要通过UI或CLI添加环境变量。
对于CLI,需要将其作为JSON模板传递。
另外,如果您已经在Dockerfile中指定了这些值,那么就不需要再次传递这些值了。
外部传递的所有值都将覆盖Dockerfile中的内部/默认值
https://stackoverflow.com/questions/49301854
复制相似问题