ipunkt / rancherize
简化你的开发工作流程
Requires
- ext-json: *
- ipunkt/rancherize-php53: ^1.4.0
- pimple/pimple: ^3.0
- symfony/console: ^3.1
- symfony/event-dispatcher: ^3.1
- symfony/process: ^3.1
- symfony/yaml: ^3.1
Requires (Dev)
- mockery/mockery: ^0.9.9
- phpunit/phpunit: ^5.6
Suggests
- ipunkt/rancherize-backup-storagebox: Adding backup commands for use with a Hetzner Storagebox service
- ipunkt/rancherize-blueprint-php-cli: PHP command line interface blueprint with cron labels and shell execution
- ipunkt/rancherize-ecr: Publish docker images to an Amazon ECR repository
- ipunkt/rancherize-php72: Enable php version 7.2
- ipunkt/rancherize-publish-traefik-rancher: Set rancher labels for the traefik rancher backend
- dev-master
- 2.51.3
- 2.51.2
- 2.51.1
- 2.51.0
- 2.50.0
- 2.49.0
- 2.48.0
- 2.47.5
- 2.47.4
- 2.47.3
- 2.47.2
- 2.47.1
- 2.47.0
- 2.46.4
- 2.46.3
- 2.46.2
- 2.46.1
- 2.46.0
- 2.45.1
- 2.45.0
- 2.44.0
- 2.43.1
- 2.43.0
- 2.41.1
- 2.41.0
- 2.40.1
- 2.40.0
- 2.39.1
- 2.39.0
- 2.38.0
- 2.37.0
- 2.36.2
- 2.36.1
- 2.36.0
- 2.35.2
- 2.35.1
- 2.35.0
- 2.34.3
- 2.34.2
- 2.34.1
- 2.34.0
- 2.33.3
- 2.33.2
- 2.33.1
- 2.33.0
- 2.32.1
- 2.32.0
- 2.31.3
- 2.31.2
- 2.31.1
- 2.31.0
- 2.30.0
- 2.29.6
- 2.29.5
- 2.29.4
- 2.29.3
- 2.29.2
- 2.29.1
- 2.29.0
- 2.28.6
- 2.28.5
- 2.28.4
- 2.28.3
- 2.28.2
- 2.28.1
- 2.28.0
- 2.27.0
- 2.26.0
- 2.25.3
- 2.25.2
- 2.25.1
- 2.25.0
- 2.24.2
- 2.24.1
- 2.24.0
- 2.23.5
- 2.23.4
- 2.23.3
- 2.23.2
- 2.23.1
- 2.23.0
- 2.22.4
- 2.22.3
- 2.22.2
- 2.22.1
- 2.22.0
- 2.21.1
- 2.21.0
- 2.20.9
- 2.20.8
- 2.20.7
- 2.20.6
- 2.20.5
- 2.20.4
- 2.20.3
- 2.20.2
- 2.20.1
- 2.20.0
- 2.19.3
- 2.19.2
- 2.19.1
- 2.19.0
- 2.18.8
- 2.18.7
- 2.18.6
- 2.18.5
- 2.18.4
- 2.18.3
- 2.18.2
- 2.18.1
- 2.18.0
- 2.17.0
- 2.16.2
- 2.16.1
- 2.16.0
- 2.15.1
- 2.15.0
- 2.14.5
- 2.14.4
- 2.14.3
- 2.14.2
- 2.14.1
- 2.14.0
- 2.13.1
- 2.13.0
- 2.12.0
- 2.11.5
- 2.11.4
- 2.11.3
- 2.11.2
- 2.11.1
- 2.11.0
- 2.10.0
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.2
- 2.8.1
- 2.8.0
- 2.7.1
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.6
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.11
- 2.1.10
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.2
- 2.0.1
- 2.0.0
- 0.1.0
- dev-tcp-proxy-image
- dev-rancher-cli
- dev-in-service-mode-upgrade-fix
- dev-gvvs-update
- dev-justb81-docker-server
- dev-stock-nginx
- dev-gitlab-build
- dev-justb81-docker-compose-1.16.1
This package is auto-updated.
Last update: 2024-09-08 18:22:13 UTC
README
Rancherize 是一个基于 symfony/console 的 PHP CLI 脚本。它使得没有特定知识的开发者也能轻松地使用 docker 和 rancher 进行开发。这是通过选择适合您应用所需环境的蓝图,并设置抽象需求而不是添加和连接服务来实现的。
关于配置如何通过这种方式变得更容易的具体示例,请参见本页底部的示例。
重要更新
从 2.23.0 版本开始,推送服务的默认行为已更改为在升级时始终拉取镜像。
可以通过在默认值或环境中设置 docker.always-pull: false
来禁用此功能。
作为 Docker 容器的使用(首选)
Rancherize 随 Docker 容器捆绑提供 ipunktbs/rancherize
。
要求
Rancherize 创建配置以用于外部 docker 工具。因此,要使用 Rancherize,必须安装以下工具
在 Linux 上安装
无需单独安装。要使用它,只需创建一个 shell 别名
alias rancherize='docker run -it --init -v $HOME/.rancherize:/home/rancherize/.rancherize -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):$(pwd) -w $(pwd) -e "USER_ID=$(id -u)" -e "GROUP_ID=$(id -g)" ipunktbs/rancherize:2-stable'
或使用提供的脚本 script/rancherize.sh
。
从现在起,除了 docker 以外,不要使用其他依赖项来使用 rancherize 进行本地环境。
在构建工具中的使用
对于 jenkins 或 gitlab-ci 等构建工具,您不能依赖于家目录中存在 .rancherize 文件。对于此用例,您可以在运行时通过环境变量在 docker 容器 上设置帐户设置。最佳实践是通过密钥将这些变量包含在内。
DOCKER_SERVER
- 仓库服务器(例如 registry.gitlab.com),忽略或留空以使用 dockerhubDOCKER_USER
- dockerhub / 仓库的用户名DOCKER_PASSWORD
- dockerhub / 仓库的密码DOCKER_ECR
- 如果使用 AWS ECRRANCHER_URL
- rancher 环境的 api-urlRANCHER_KEY
- rancher api-keyRANCHER_SECRET
- rancher api-secretRANCHER_ACCOUNTNAME_URL
- 当使用 rancher.account = 'ACCOUNTNAME' 时使用的替代 rancher 环境api-urlRANCHER_ACCOUNTNAME_KEY
- 当使用 rancher.account = 'ACCOUNTNAME' 时使用的替代 rancher api-keyRANCHER_ACCOUNTNAME_SECRET
- 当使用 rancher.account = 'ACCOUNTNAME' 时使用的替代 rancher api-secret
请注意,当 RANCHER_URL
设置时,才会解析 RANCHER_ACCOUNTNAME_{URL,KEY,SECRET}
。如果不设置默认帐户,则设置它们将不起作用。
在项目中使用
要求
Rancherize 创建配置以用于外部 docker 工具。因此,要使用 Rancherize,必须安装以下工具
docker
https://docs.docker.net.cn/engine/installation/docker-compose
https://docs.docker.net.cn/compose/install/rancher-compose
https://docs.rancher.com/rancher/v1.2/en/cattle/rancher-compose/#installation
安装
Rancherize 使用 composer 安装
composer require 'ipunkt/rancherize:^2.5.0'
配置
帐户
Rancherize 知道两种类型的帐户
- docker 帐户。它们用于将镜像推送到 docker hub
- rancher 帐户。它们用于将您的应用程序部署到您的 rancher 环境
它们都由 ~/.rancherize
中的 json 文件管理,该文件应仅对您的用户可读。
为了方便编辑,请使用以下命令。它会用您的 $EDITOR
打开文件,如果文件尚不存在,则会创建默认文件。
vendor/bin/rancherize rancher:access
环境
Rancherize 配置被分成 环境
。一个典型的应用程序至少知道一个 本地
和一个 生产
环境。环境通过编辑应用工作目录内的 rancherize.json
文件进行配置。
注意,所有配置值也可以在 defaults
部分设置。如果配置值没有出现在 环境
中,将使用此部分的值。有关如何最佳使用环境的更详细解释,请参阅 环境和默认值。
可以使用 init
命令为环境创建初始配置。
它会提示蓝图创建一个合理的默认生产配置。如果使用了 --dev
标志,则创建一个本地开发环境的配置。
vendor/bin/rancherize init [--dev] BLUEPRINT ENVIRONENTNAME1 ENVIRONEMNTNAME2... ENVIRONMENTNAMEX
e.g.
vendor/bin/rancherize init --dev webserver local
vendor/bin/rancherize init webserver production staging
设置环境变量
存在一个名为 environment:set
的命令,用于方便地为所有 环境
设置环境值。它将遍历所有 环境
,显示当前值并询问新值。如果没有提供新值,则将再次使用旧值。
vendor/bin/rancherize environment:set VARIABLENAME
e.g.
vendor/bin/rancherize environment:set APP_KEY
开发环境
存在一个名为 start
的命令,用于在本地机器上启动应用程序的环境。
vendor/bin/rancherize start ENVIRONMENTNAME
e.g.
vendor/bin/rancherize start local
请注意,此命令目前不会从工作目录构建 docker 镜像,因此应将 环境
设置为直接挂载工作目录。对于 WebserverBlueprint,这意味着设置
"use-app-container": false
"mount-workdir":"true"
这些设置在用 --dev
标志初始化时包含在内
部署
推送
存在一个名为 push
的命令,用于将您工作目录的当前状态部署到 Rancher。
vendor/bin/rancherize push ENVIRONEMNT VERSION
e.g.
vendor/bin/rancherize push staging v1
- 您工作目录的当前状态将构建为 docker 镜像,并标记为
$(docker.repository):$(docker.version-prefix)VERSION
- 使用全局配置中名为
$(docker.account)
的凭据将构建的镜像推送到 docker hub - 检索 rancher 中堆栈的当前配置
- 如果堆栈尚不存在,则创建一个空堆栈
- 将应用程序配置添加到堆栈配置中
- 将应用程序部署到堆栈中
- 如果没有找到该服务的其他版本,则创建它
- !NEW! 如果
rancher.in-service
设置为true
,则将触发滚动升级到非版本化名称,然后是此服务的在服务升级 - 如果找到相同版本的服务,则触发在服务升级
- 如果找到不同版本的服务,则触发滚动升级
- 在服务升级的情况下,rancherize 等待堆栈达到
upgraded
状态并确认升级。
您可以将rancher.upgrade-healthcheck
设置为true
,以便等待它报告healthy
。请注意,这仅在服务具有健康检查定义的情况下有效(目前尚未通过 rancherize 支持)
构建镜像
存在一个名为 build-image
的命令,用于将您工作目录的当前状态构建到 docker 仓库,然后通过 push -i
将它们部署。这本质上与 push
命令相同,但不与 rancher 进行任何交互。
蓝图
蓝图中性配置
已知蓝图
开发蓝图
有关如何开发您自己的蓝图的更多信息,请参阅 蓝图说明文件