@ eclass/ semmantic- release-docker (英语)
语义释放 标记和推推插件图像的插件
| 步骤 | 说明 |
|---|---|
verifyConditions | 验证是否存在 baseImageName,以及 registries 选项. |
prepare | 标记插头图像 . |
publish | 推道克图像. |
安装
npm i -D @eclass/semantic-release-docker
使用量
插件可以在 语义释放 配置文件数字 :
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
"@eclass/semantic-release-docker"
]
}
配置
选项
配置
| 变量 | 说明 |
|---|---|
baseImageName | 先前构建的嵌入器图像名称 。 要求. |
baseImageTag | 以前构建的嵌入器图像标记的名称 。 可选的 默认 "latest" |
releaseImageTag | 新建的嵌入器图像标签名称 。 可选的 默认 "latest" 或者说 channel 如果使用自定义分支或预连接 |
registries | 矩阵 书记官处 对象。 要求。 示例:{"用户":"DOCKER USER","密码":"DOCKER PASWORD","url":"docker.pkg.github.com","图像名":"docker.pkg.github.com/myuser/myrepo/myapp") |
additionalTags | 一组额外的标记来推. 可选的 示例 ["beta", "next"] |
书记官处
| 变量 | 说明 |
|---|---|
| url 密码 | (原始内容存档于2018-10-10). Ull of the Docker register register. 要求。 示例 "docker.pkg.github.com" |
| 图像Name | 插头图像的名称 。 要求。 示例 "docker.pkg.github.com/myuser/myrepo/myapp" |
| 用户 | 用作登录到嵌入器注册处的用户名的环境变量名称 。 要求。 示例 "DOCKER_USER" |
| 密码 | 用作登录到嵌入器登记册密码的环境变量的名称 。 要求。 示例 "DOCKER_PASSWORD" |
| 跳过标签 | 不应被推入嵌入器注册的图像标记序列 。 可选的 示例 ["latest"] |
环境变量
环境变量是变量. 取决于 registries 选项.
| 变量 | 说明 |
|---|---|
DOCKER_USER | 嵌入器注册的用户名. |
DOCKER_PASSWORD | 嵌入器注册的密码 . |
DOCKER_BASE_IMAGE_TAG | 以前构建的嵌入器图像标记的名称 。 可选的 默认 "latest"。 。 。 . |
DOCKER_RELEASE_IMAGE_TAG | 新发行的嵌入器图像标签名称 。 可选的 默认 "latest" 或者说 channel 如果使用自定义分支或预连接 |
实例
将图像推向许多嵌入器注册
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
[
"@eclass/semantic-release-docker",
{
"baseImageName": "myapp",
"registries": [
{
"url": "registry.gitlab.com",
"imageName": "registry.gitlab.com/mygroup/myapp",
"user": "CI_REGISTRY_USER",
"password": "CI_REGISTRY_PASSWORD"
},
{
"url": "docker.io",
"imageName": "docker.io/myuser/myapp",
"user": "DOCKER_REGISTRY_USER",
"password": "DOCKER_REGISTRY_PASSWORD"
},
{
"url": "docker.pkg.github.com",
"imageName": "docker.pkg.github.com/myuser/myrepo/myapp",
"user": "GITHUB_USER",
"password": "GITHUB_TOKEN"
},
{
"url": "123456789012.dkr.ecr.us-east-1.amazonaws.com",
"imageName": "123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp",
"user": "AWS_DOCKER_USER",
"password": "AWS_DOCKER_PASSWORD",
"skipTags": ["latest"]
}
],
"additionalTags": ["next", "beta"]
}
]
]
}
# .gitlab-ci.yml
release:
image: node:alpine
stage: release
before_script:
- docker build -t myapp .
script:
- npx semantic-release
only:
- master
# .travis.yml
language: node_js
cache:
directories:
- ~/.npm
node_js:
- '12'
stages:
- test
- name: deploy
if: branch = master
jobs:
include:
- stage: test
script: npm t
- stage: deploy
before_script: docker build -t myapp .
script: npx semantic-release