【问题标题】:Configure Dockerfile to set AWS configurations配置 Dockerfile 以设置 AWS 配置
【发布时间】:2015-09-01 14:57:37
【问题描述】:

我刚刚开始关注Docker。我有一个节点应用程序可以调整大小和图像,然后在完成后向aws 发送SQS 消息。我设法创建了我的应用程序的 docker 映像,从我的本地计算机复制它,但遇到了我无法设置包含我的 client_idclient_secretAWS 变量来发送SQS 消息。

以前有人遇到过这个问题吗?

我需要在dockerfile 中写入哪些命令才能设置aws 变量?

这是我的dockerfile

FROM ubuntu:latest

#install node and npm
RUN apt-get update && \
    apt-get -y install curl && \
    curl -sL https://deb.nodesource.com/setup | sudo bash - && \
    apt-get -y install python build-essential nodejs

#install imagemagick, graphicsmagick and set-up aws-cli to send SQS messages
RUN sudo apt-get -y install imagemagick
RUN sudo apt-get -y install graphicsmagick
RUN sudo apt-get install unzip
RUN curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
RUN unzip awscli-bundle.zip
RUN sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

#set-up environment variables for AWS


#at some point set-up git and fetch repository from git


# Provides cached layer for node_modules
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
RUN mkdir -p /home/image-resizer && cp -a /tmp/node_modules /home/image-resizer/

#bundle source code into image
COPY . /home/image-resizer

【问题讨论】:

    标签: node.js amazon-web-services docker


    【解决方案1】:

    我认为有关环境变量的答案是很好的解决方案。要提供替代方案,或者如果您使用文件进行 aws 身份验证,您可以使用 docker 卷来挂载这些文件。

    将主机目录挂载为数据卷

    除了使用 -v 标志创建卷之外,您还可以将目录从 Docker 守护程序的主机挂载到容器中。

    注意:如果您使用的是 Boot2Docker,您的 Docker 守护程序只能有限地访问您的 OSX/Windows 文件系统。 Boot2Docker 尝试自动共享您的 /Users (OSX) 或 C:\Users (Windows) 目录 - 因此您可以使用 docker run -v /Users/:/ ... (OSX) 或 docker run - 挂载文件或目录 - v /c/用户/:/

    取自https://docs.docker.com/userguide/dockervolumes/

    但是,此解决方案的缺点是假设 config 文件夹位于固定位置。

    【讨论】:

      【解决方案2】:

      您可以使用 ENV 在 docker 中设置环境变量。例如。

      ENV PORT=9000
      ENV LANG=en_US.utf8
      

      但是,机密信息不应该嵌入到 Dockerfile 中,您可以使用 -e 参数传递或使用文本文件并通过 --env-file 参数传递给 docker .转至 SVN 或 git 时应忽略文本文件。

      【讨论】:

        【解决方案3】:

        为什么不将所需的变量作为环境变量传递给docs-ecommand line

        【讨论】:

          猜你喜欢
          • 2017-12-16
          • 2019-05-26
          • 1970-01-01
          • 2022-07-05
          • 2020-12-09
          • 2016-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多