我正在尝试在 gitlab 上对我的容器运行集成测试。
为了使事情尽可能简单,以下是我的相关部分.gitlab-ci.yml
image: ubuntu:latest
coverage:
stage: test
dependencies:
- build
services:
- postgres:latest
- registry.gitlab.com/username/project/image:latest
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该作业时,我收到容器运行状况检查警告。
2019-06-06T02:13:34.508595817Z FATAL: No HOST or PORT found
通常我会从标准开始我的图像docker run -p port:port image:version,但我不确定这些选项如何转化为 gitlab 服务。如何定义主机和端口?
我想要一个可单独调用的 url 来查看特定用户的 gitlab 中的问题。
如何检索当前登录的用户?
https://server/folder/project/issues?scope=all&state=opened&assignee_id=<how to get this id>
或者
https://server/folder/project/issues?scope=all&state=opened&assignee_username=<how to get this name>
通过scope=assigned_to_me
https://server/folder/project/issues?scope=signed_to_me&state=opened解决
基于答案(导致std::cmp 函数),这里是工作游乐场
问题:
我尝试获取 Vec 的最小值/最大值。
由于 f64 有 NAN 和 Infinity,它不满足 Ord 并抱怨:
the trait `Ord` is not implemented for `f64`
Run Code Online (Sandbox Code Playgroud)
对于 NAN / Inf 从未包含在 Vec 中的情况,我怎样才能获得最小值/最大值?
动机
我有一个 docker compose,它有几个服务,这些服务可能非常大,由于从注册表加载,它们会显着影响 ci 时间。
为了减少构建和启动时间,我对许多服务使用 --cache-to 和 --cache-from 。
使用缓存需要 docker buildx。
问题
docker compose build会导致 buildx 的并行执行和容器名称“/buildx_buildkit_*”的名称冲突
滚动浏览“解决方案”部分以查看我正在使用的文件以及底部的错误消息
解决方案
请参阅fbjorn 的回答
另请注意以下事项:在撰写本文时,图像通常docker:20.10.16-dind用于 CICD dind 管道。为了使这个场景发挥作用,我必须使用 docker:dind (即最新的 dind)
# dind.yml
version: '3.9'
services:
dind:
image: docker:dind
privileged: true
restart: always
volumes:
- /dockerbuild:/build/dockerbuild
Run Code Online (Sandbox Code Playgroud)
# docker-compose.yml
version: '3.9'
services:
my_service:
build:
context: .
cache_from:
- type=local,src=./${CACHE_DIR:-build-cache}/my_service
cache_to:
- type=local,dest=./${CACHE_DIR:-build-cache}/my_service
dockerfile: Dockerfile
image: ${MY_IMAGE_TAG:-dockerbuild:latest}
command: tail -f /dev/null
your_service:
build:
context: .
cache_from:
- type=local,src=./${CACHE_DIR:-build-cache}/your_service …Run Code Online (Sandbox Code Playgroud)