小编the*_*tor的帖子

如何在单个 Gitlab CI 作业中拥有多个 docker 容器?

我的项目有多个组件,需要在单独的容器中运行并相互连接。我正在尝试在 Gitlab CI 的单个“测试”阶段作业中运行整个项目的测试。为此,我需要创建多个泊坞窗并手动设置每个组件。有什么办法可以在 Gitlab CI 中做到这一点吗?

任何意见,将不胜感激。谢谢!

continuous-integration gitlab docker

4
推荐指数
1
解决办法
5013
查看次数

使用 FF_NETWORK_PER_BUILD 标志运行 Gitlab CI 作业时 --network=host 是否仍然连接到主机网络?

我正在尝试在 Gitlab CI 作业中使用 docker in docker 运行测试。我的理解是,启用 FF_NETWORK_PER_BUILD 标志将自动创建一个用户定义的桥接网络,作业运行程序和该作业中所有创建的泊坞窗将连接到该网络...但是查看 Gitlab 文档我有点困惑...

此页面: https: //docs.gitlab.com/ee/ci/services/

docker:dind给出了使用该服务的示例FF_NETWORK_PER_BUILD: "true"

但使用时docker run它们仍然包含该--network=host标志。

这是给定的示例:

  stage: build
  image: docker:19.03.1
  services:
    - docker:dind                    # necessary for docker run
    - tutum/wordpress:latest
  variables:
    FF_NETWORK_PER_BUILD: "true"     # activate container-to-container networking
  script: |
    docker run --rm --name curl \
      --volume  "$(pwd)":"$(pwd)"    \
      --workdir "$(pwd)"             \
      --network=host                 \
      curlimages/curl:7.74.0 curl "http://tutum-wordpress"
Run Code Online (Sandbox Code Playgroud)

我试图确保此作业中的所有 docker 都位于自己独立的网络上,因此--network=host在此实例中使用该标志是否会将新 docker 连接到实际作业运行程序所在的主机服务器?或者刚刚创建的按职位网络?在什么情况下,您希望创建每个作业网络并仍将新的 docker 连接到主机网络?

如有任何建议,将不胜感激!

gitlab docker gitlab-ci

3
推荐指数
1
解决办法
4166
查看次数

我可以引用 gitlab 管道中的另一个项目而不是克隆它吗?

我对 gitlab pipeline 完全陌生,所以我不确定最好的方法是什么。我已经阅读了有关子模块和依赖项、触发其他管道的内容,但我很难理解什么有助于我在这里尝试实现的目标。

我有project_b,它是project_a 的子模块。在project_b的.gitlab-ci.yml中,project_a当前正在被克隆,然后project_b被移动到子模块通常位于project_a中的位置:

...
default:
...
    before_script:
        - git clone (project_a)
        - mv project_a /src
        - rm -rf /src/submodules/project_b/*
        - mount --bind /src/submodules/project_b
...
Run Code Online (Sandbox Code Playgroud)

这是因为project_b 依赖于project_a。

不过,据我了解,这意味着project_b是project_a的下游。

我不想每次运行project_b 管道时都必须克隆整个project_a 存储库。

我已经看到了大量有关为依赖项目触发下游管道的信息,但我唯一能找到的似乎与我的案例相关的是不久前提出的关于 gitlab 缺乏触发上游管道的功能的问题: 上游在 Gitlab-CI 中触发,又名管道依赖项

有添加这个功能吗?因为我确实在网上找不到任何信息。否则,关于如何绕过克隆整个project_a存储库的任何建议?我可能完全不在这儿,但我想知道的一件事是,是否有某种方法可以让project_b触发project_a的特定管道,而该管道只做我需要它做的事情来测试project_b?

任何建议将不胜感激,谢谢!

gitlab gitlab-ci

2
推荐指数
1
解决办法
4979
查看次数

如何在Haskell的列表理解列表中仅获取偶数

我正在尝试采用一个起点和一个长度并返回一个列表列表,该列表逐渐将偶数起始整数增加2

例如:

evenIncrease 6 3
Run Code Online (Sandbox Code Playgroud)

应该返回: [[6],[6,8],[6,8,10]]

我是Haskell的新手,到目前为止,我的尝试看起来像这样:

evenIncrease n l = [[n..i] | i <- [n..n+(l*2)-2], even i]
Run Code Online (Sandbox Code Playgroud)

但是当我尝试的示例时evenIncrease 6 3,我得到:

[[6],[6,7,8],[6,7,8,9,10]]

这几乎是我要寻找的,但是我不明白为什么在使用警卫“偶数我”时内部列表中仍然存在奇数

有任何想法吗?

haskell

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

如何将常量从 python 文件加载到 bash 脚本?

我有一个 python 文件,其中维护了一堆常量值,

constant_value = 5
constant_address = '127.0.0.1'
constant_file_path = '/home/user/work'
Run Code Online (Sandbox Code Playgroud)

我正在编写一个将使用这些常量的 bash 脚本,但我不想走使用配置文件来保存这些值或它们都可以从中获取的内容的路线,我想将这些常量保留在python 文件。

我如何将这些常量读入我的 bash 脚本中以供使用?

我在网上找到了一些类似的想法,但我有点困惑,例如某些常量是 int,而其他常量是字符串等是否会出现任何问题。

python bash

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