hashicorp/packer本仓库根目录包含HashiCorp官方支持的Dockerfile,用于构建hashicorp/packer Docker镜像。dev Docker镜像适用于本地开发和测试,而生产环境镜像release则通过CI构建并使用CI构建的二进制文件。light和full Docker镜像使用releases.hashicorp.com提供的官方二进制文件构建。
light:仅包含Packer二进制文件,设置为默认入口点,适合大多数基础使用场景,DockerHub的latest标签指向此版本full:基于light版本,额外预安装HashiCorp官方维护的插件dev:在容器内部从源码编译二进制文件后提供使用,适用于开发测试参考本仓库的Makefile,特别是docker和docker-dev目标,可基于可用源码构建本地版本的dev镜像。
light版本light版本容器会从releases.hashicorp.com复制当前稳定版的二进制文件,并将其设置为默认入口点。对于大多数仅需从容器运行二进制文件的场景,这是最佳选择。
使用命令:
shelldocker run <参数> hashicorp/packer:light <命令>
full版本full版本容器在light版本基础上,预安装了HashiCorp官方维护的插件。
使用命令:
shelldocker run <参数> hashicorp/packer:full <命令>
查看预安装插件列表:
shelldocker run <参数> hashicorp/packer:full plugins installed
运行引用一个或多个模板文件的配置命令时,最简单的方法是为本地工作区挂载卷。
packer initshelldocker run \ -v `pwd`:/workspace -w /workspace \ -e PACKER_PLUGIN_PATH=/workspace/.packer.d/plugins \ hashicorp/packer:latest \ init .
注意:packer init 从Packer v1.7.0及更高版本开始可用
该命令将当前工作目录(pwd)挂载到容器内的workspace目录(通过-w设置为工作目录)。使用packer init安装的任何插件将存储在PACKER_PLUGIN_PATH环境变量指定的目录下。PACKER_PLUGIN_PATH必须设置为卷挂载内的路径,以确保插件在packer build时可用。
packer buildshelldocker run \ -v `pwd`:/workspace -w /workspace \ -e PACKER_PLUGIN_PATH=/workspace/.packer.d/plugins \ hashicorp/packer:latest \ build .
对于旧版JSON模板,构建命令必须指定模板文件。
shelldocker run \ -v `pwd`:/workspace -w /workspace \ hashicorp/packer:latest \ build template.json
对于第三方插件的手动安装,建议将插件二进制文件放置在工作目录下的子目录中。在上述命令中添加-e PACKER_PLUGIN_PATH=/workspace/<插件子目录路径>以告知Packer插件位置。
var.json)到构建命令shelldocker run \ -v `pwd`:/workspace -w /workspace \ hashicorp/packer:latest \ build --var-file var.json template.json
var.json应位于本地工作目录(pwd)中,并在容器的workspace挂载点内。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务