0

我在 Rancher v2 上部署我的网站时遇到了困难。完整的新手,主要使用 Rancher UI 而不是 CLI。我有一个带有 .rancher-pipeline.yml 的 Git 存储库,它在 Project > Workloads > Pipelines 下启用。我有一个 Dockerfile 推送到我的 DockerHub 存储库。

.rancher-pipeline.yml

stages:
- name: Create Build Tag
  steps:
  - runScriptConfig:
      image: myapp/myapp-d8-webapp:1.0
      shellScript: |-
        apt-get update
        apt-get upgrade -y
        apt-get install -y --no-install-recommends automake build-essential ssh git unzip curl libopenmpi-dev openmpi-bin git default-mysql-client default-libmysqlclient-dev vim nano wget libxml2-dev zlib1g-dev libonig-dev
        docker-php-ext-install zip
        curl --silent --show-error https://getcomposer.org/installer | php
        ./composer.phar install -n --prefer-dist
        touch storage/testing.sqlite storage/database.sqlite
- name: Build and Publish Image
  steps:
  - publishImageConfig:
      dockerfilePath: ./Dockerfile
      buildContext: .
      tag: myapp/myapp-d8-webapp:1.0
      pushRemote: true
      registry: index.docker.io
    env:
      PLUGIN_DEBUG: "true"
      PLUGIN_INSECURE: "true"
timeout: 60
notification: {}
  1. 在我的本地 docker 环境中,我能够使用 Docker-compose 连接到外部数据库。我如何在 Rancher 上做到这一点?我在 Rancher 管道文档(https://github.com/rancher/pipeline/blob/master/docs/README.md)中读到,Run as a Service任务步骤和创建的别名可用于定义 mysql 任务步骤,这将连接到mysql数据库。我在哪里可以定义这Run as a Service一步?我没有看到它在添加步骤下的 Github 存储库管道配置中列为一个选项。

在任务步骤中还有一个名为“作为服务运行”的选项。启用后,意味着任务步骤在管道执行的生命周期中是一个长时间运行的容器。后面的步骤可以使用在 Name 字段中指定的别名来引用它。例如,如果您配置一个 mysql 任务步骤,它作为名称为 mysqltest 的服务运行,您可以使用 mysqltest 作为主机连接到 mysql 数据库。当您的测试依赖于数据库等中间件服务时,此选项可能很有用。

  1. 构建失败是因为它无法连接到 dockerhub 存储库,因为我们的 Rancher 实例位于代理后面。我试图将以下内容添加到 Jenkins Workload configs Java_opts 值中,但没有运气。有人知道如何解决这个詹金斯问题吗?
-Dhttp.proxyHost=http://proxy.xx.xxxx.xxx
-Dhttp.proxyPort=xxxx
  1. 工作负载运行时是否添加入口/负载均衡器?还是我必须在构建过程中的某个地方定义它?更新:我认为它必须作为 ingress.yml 添加到 .rancher-pipelin.yml,但我不确定如何设置负载均衡器(子域)然后将其添加到 ingress.yml。如果有人有一个很好的例子,那就太好了。

添加 .rancher-pipeline.yml:

- name: Ingress - Landing
  when:
    branch: master
  steps:
    - applyYamlConfig:
        path: ./ingress.yaml
4

0 回答 0