我正在编写一个python脚本来创建AWS CloudFormation更改集以简化执行,我想将这个脚本添加到Docker映像并作为入口点运行。你知道吗
为了实现这一点,我必须阅读CFs模板文件和参数文件,它们都是json格式的。 当我在本地shell环境中执行脚本时,一切都按预期工作。你知道吗
当我运行docker容器并指定文件时。脚本说找不到文件。你知道吗
现在我的问题是如何使容器能够访问这些文件?你知道吗
docker pull cf-create-change-set:latest
docker run cf-create-change-set:latest --template-body ./template.json --cli-input-json ./parameters.json
Traceback (most recent call last):
File "/app/cf-create-change-set.py", line 266, in <module>
with open(CLI_INPUT_JSON, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: './template.json'
这是我的文件:
FROM AWS_ACCOUNT_ID.dkr.ecr.AWS_REGION.amazonaws.com/cicd/docker-base-image:iat
WORKDIR /app
# Copy app data
COPY app/requirements.txt .
COPY app/cf-create-change-set.py .
RUN pip3 install --no-cache-dir -r /app/requirements.txt
ENTRYPOINT [ "/app/cf-create-change-set.py" ]
出现错误的原因是,当文件存在于文件系统中时,容器中不存在该文件。至少有两种可能的解决办法。你知道吗
您可以在构建阶段将文件
ADD
放入容器(构建您自己的Dockerfile)或将本地目录映射到容器内的目录:这样,当您运行容器时,它将拥有与本地
templates
文件夹中的内容位于/templates/template.json
的相同文件。阅读有关bind mounts的更多信息。你知道吗相关问题 更多 >
编程相关推荐