小编Dav*_*llo的帖子

在docker中安装nvm

我正在构建一个新的Docker镜像,我希望安装NVM,这样我就可以管理nodejs.

阅读有关如何安装NVM的文档,他们提到您需要获取.bashrc文件才能开始使用NVM.

我试图在Dockerfile中设置它,但到目前为止构建失败并出现错误:

"bash:nvm:命令未找到"

以下是我的Dockerfile中的相关行:

ADD files/nvm_install.sh /root/
RUN chmod a+x  /root/nvm_install.sh
RUN bash -c "/root/nvm_install.sh"
RUN bash -l -c "source /root/.bashrc"
RUN cd /root
RUN bash -l -c "nvm install 0.10.31"
Run Code Online (Sandbox Code Playgroud)

以下是尝试构建的输出:

docker build -t nginx_dock.

Step 0 : FROM ubuntu
---> 826544226fdc
Step 1 : MAINTAINER dficociello
---> Using cache
---> da3bc340fbb3
Step 2 : RUN apt-get update
---> Using cache
---> 6b6b611feb4f
Step 3 : RUN apt-get install nginx curl -y
---> Using cache
---> 159eb0b16d23
Step …
Run Code Online (Sandbox Code Playgroud)

node.js nvm docker

86
推荐指数
14
解决办法
4万
查看次数

带有Packer的AWS user_data

所以我正在尝试使用Packer创建AWS映像并通过user_data_file指定一些用户数据.实例启动时需要运行此文件的内容,因为每次实例都是唯一的.我不能把它加入AMI.

使用打包器我有以下内容:

{
  "variables": {
  "ami_name": ""
  },
  "builders": [
  {
    "type": "amazon-ebs",
    "region": "us-east-1",
    "source_ami": "ami-c8580bdf",
    "instance_type": "t2.micro",
    "ssh_username": "ubuntu",
    "ami_name": "{{ user `ami_name` }}-{{ isotime | clean_ami_name }}",
    "user_data_file": "user_data.sh",
    "tags": {
      "os_version": "ubuntu",
      "built_by": "packer",
      "build_on": "{{ isotime | clean_ami_name }}",
      "Name": "{{ user `ami_name` }}"
    }
  }],
  "provisioners": [
  {
    "type": "ansible",
    "playbook_file": "playbook.yml",
    "user": "ubuntu"
  }]
}
Run Code Online (Sandbox Code Playgroud)

我的user_data shell脚本的内容只是通过在供应商步骤中运行的ansible脚本安装的软件包的几个基本配置行.观察Packer的输出我可以确认ansible脚本全部运行.

Packer完成并创建AMI,但永远不会执行用户数据.结果图像中不存在任何记录.没有/userdata.log文件并且/var/lib/cloud/instance/user-data.txt是空的我觉得我错过了一些基本的东西,因为这应该是一个非常简单的事情与Packer.

amazon-ec2 packer amazon-web-services user-data

9
推荐指数
2
解决办法
4361
查看次数

如何将 AWS 角色与 Packer 结合使用来创建 AMI

我目前正在通过 Packer 构建 AMI,没有问题,但我正在将 AWS 凭证放入我的脚本中,这不是我想要的。阅读 Packer 文档时,他们指定如果没有找到凭证,它可以使用 AWS 角色。

我已经创建了策略和角色,但我不清楚如何告诉 Packer 使用这个角色。我是否必须将 ARN 作为变量传入?

有什么想法吗?

packer amazon-web-services

6
推荐指数
1
解决办法
9252
查看次数

未找到Terraform AWS凭证文件

在阅读Terraform上的文档时,它说有3种方法可以找到AWS信用:

  1. 静态凭证(嵌入在源文件中)
  2. 环境变量.
  3. 来自AWS凭证文件

我想让我的设置只使用凭据文件.我已检查环境变量是否已清除,并且我已将Terraform中的相关变量留空.

当我这样做并运行'Terraform Plan'时,我得到错误:

没有为AWS Provider找到有效的凭据源.

我甚至尝试将我的凭证文件的位置添加到我的提供程序块中,这也没有帮助:

provider "aws" {
    region  = "${var.region}"
    profile = "${var.profile}"
    shared_credentials_file = "/Users/david/.aws/credentials"
    profile = "testing"
}
Run Code Online (Sandbox Code Playgroud)

是否有一些东西我想让Terraform读取这个文件并且不需要环境变量?

amazon-web-services terraform

6
推荐指数
2
解决办法
5027
查看次数