- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CloudFoundry 部署我的服务,我的 E2E 测试是使用 Postman(CLI 上的 Newman)完成的。情况是我无法从我的 GitLab CI/CD 直接访问某些服务,然后我需要创建一个 SSH 隧道 (cf ssh) 以便能够在 CI/CD 管道期间通过隧道执行 Postman 集合。
这是我的 Dockerfile:
FROM my-private-registry/cf-cli-image
COPY ./images/cf-ssh-tunnel-service/docker-entrypoint.sh /docker-entrypoint.sh
EXPOSE 9001
ENTRYPOINT ["/docker-entrypoint.sh"]
这是docker-entrypoint.sh
:
#!/bin/bash
set -eo pipefail
# usage: file_env VAR [DEFAULT]
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
file_env() {
local var="$1"
local fileVar="${var}_FILE"
local def="${2:-}"
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
exit 1
fi
local val="$def"
if [ "${!var:-}" ]; then
val="${!var}"
elif [ "${!fileVar:-}" ]; then
val="$(< "${!fileVar}")"
fi
export "$var"="$val"
unset "$fileVar"
}
file_env 'CF_SSH_SERVICE_APP_NAME'
file_env 'CF_SSH_SERVICE_REMOTE_PORT' 8080
CF_SSH_SERVICE_LOCAL_PORT=9001
echo "Logging in ..."
cf login -a $CF_URL -u $CF_DEPLOY_USER -p $CF_DEPLOY_PASSWORD -o $CF_ORG -s $CF_SPACE --skip-ssl-validation
cf target
echo "Creating the CF SSH Tunnel to $CF_SSH_SERVICE_APP_NAME:$CF_SSH_SERVICE_REMOTE_PORT though the local port $CF_SSH_SERVICE_LOCAL_PORT."
cf ssh -k -T -N $CF_SSH_SERVICE_APP_NAME -L $CF_SSH_SERVICE_LOCAL_PORT:0.0.0.0:$CF_SSH_SERVICE_REMOTE_PORT
echo "DONE!"
最后这就是我在 GitLab 管道中使用图像作为服务的方式:
stages:
- e2e-test
newman:test:development:
image: my-private-registry/curl-image
stage: e2e-test
services:
- name: my-private-registry/cf-ssh-tunnel-service:latest
alias: cf-ssh-tunnel-service
variables:
CF_SSH_SERVICE_APP_NAME: $APP_NAME
script:
- curl http://cf-ssh-tunnel-service:9001/endpoint
如您所见,我正在根据该图像创建服务。然后,当我运行管道时,curl
请求返回一个 Could not resolve host: cf-ssh-tunnel-service
。
问:如何创建 Docker 镜像以用作 GitLab 中的服务?
问:我应该如何创建 CF SSH 隧道作为 GitLab 的监听服务?
最佳答案
除非您的图像存储在 GitLab container registry 中您将无法访问您的自定义图像(因为它需要登录到私有(private)仓库才能提取它)。
我可以考虑两种解决方案:
sudo gitlab-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com
Please enter the gitlab-ci token for this runner
xxx
Please enter the gitlab-ci description for this runner
[hostname] my-runner
Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker
Please enter the Docker image (eg. ruby:2.1):
alpine:latest
这里有几点说明:
如果选择该选项,则必须将 tags: [docker-runner-tag]
命令添加到 .gitlab-ci.yml
中的作业中。不要忘记在您注册自定义 docker runner 的机器上执行 docker 登录,否则拉取仍然会失败。您可能必须 add gitlab-runner to the group of docker's authorized users还有:
sudo usermod -aG docker gitlab-runner
我认为 Docker Hub 也提供私有(private)注册中心的选项,但我不知道这些服务是否可以免费使用。
关于docker - 如何创建自定义 Docker 镜像并将其用作 GitLab CI/CD 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57396378/
好的,所以我编辑了以下... 只需将以下内容放入我的 custom.css #rt-utility .rt-block {CODE HERE} 但是当我尝试改变... 与 #rt-sideslid
在表格 View 中,我有一个自定义单元格(在界面生成器中高度为 500)。在该单元格中,我有一个 Collection View ,我按 (10,10,10,10) 固定到边缘。但是在 tablev
对于我的无能,我很抱歉,但总的来说,我对 Cocoa、Swift 和面向对象编程还很陌生。我的主要来源是《Cocoa Programming for OS X》(第 5 版),以及 Apple 的充满
我正在使用 meta-tegra 为我的 NVIDIA Jetson Nano 构建自定义图像。我需要 PyTorch,但没有它的配方。我在设备上构建了 PyTorch,并将其打包到设备上的轮子中。现
在 jquery 中使用 $.POST 和 $.GET 时,有没有办法将自定义变量添加到 URL 并发送它们?我尝试了以下方法: $.ajax({type:"POST", url:"file.php?
Traefik 已经默认实现了很多中间件,可以满足大部分我们日常的需求,但是在实际工作中,用户仍然还是有自定义中间件的需求,为解决这个问题,官方推出了一个 Traefik Pilot[1] 的功
我想让我的 CustomTextInputLayout 将 Widget.MaterialComponents.TextInputLayout.OutlinedBox 作为默认样式,无需在 XML 中
我在 ~/.emacs 中有以下自定义函数: (defun xi-rgrep (term) (grep-compute-defaults) (interactive "sSearch Te
我有下表: 考虑到每个月的权重,我的目标是在 5 个月内分散 10,000 个单位。与 10,000 相邻的行是我最好的尝试(我在这上面花了几个小时)。黄色是我所追求的。 我试图用来计算的逻辑如下:计
我的表单中有一个字段,它是文件类型。当用户点击保存图标时,我想自然地将文件上传到服务器并将文件名保存在数据库中。我尝试通过回显文件名来测试它,但它似乎不起作用。另外,如何将文件名添加到数据库中?是在模
我有一个 python 脚本来发送电子邮件,它工作得很好,但问题是当我检查我的电子邮件收件箱时。 我希望该用户名是自定义用户名,而不是整个电子邮件地址。 最佳答案 发件人地址应该使用的格式是: You
我想减小 ggcorrplot 中标记的大小,并减少文本和绘图之间的空间。 library(ggcorrplot) data(mtcars) corr <- round(cor(mtcars), 1)
GTK+ noob 问题在这里: 是否可以自定义 GtkFileChooserButton 或 GtkFileChooserDialog 以删除“位置”部分(左侧)和顶部的“位置”输入框? 我实际上要
我正在尝试在主页上使用 ajax 在 magento 中使用 ajax 显示流行的产品列表,我可以为 5 或“N”个产品执行此操作,但我想要的是将分页工具栏与结果集一起添加. 这是我添加的以显示流行产
我正在尝试使用 PasswordResetForm 内置函数。 由于我想要自定义表单字段,因此我编写了自己的表单: class FpasswordForm(PasswordResetForm):
据我了解,新的 Angular 7 提供了拖放功能。我搜索了有关 DnD 的 Tree 组件,但没有找到与树相关的内容。 我在 Stackblitz 上找到的一个工作示例.对比drag'ndrop功能
我必须开发一个自定义选项卡控件并决定使用 WPF/XAML 创建它,因为我无论如何都打算学习它。完成后应该是这样的: 到目前为止,我取得了很好的进展,但还有两个问题: 只有第一个/最后一个标签项应该有
我要定制xtable用于导出到 LaTeX。我知道有些问题是关于 xtable在这里,但我找不到我要找的具体东西。 以下是我的表的外观示例: my.table <- data.frame(Specif
用ejs在这里显示日期 它给我结果 Tue Feb 02 2016 16:02:24 GMT+0530 (IST) 但是我需要表现为 19th January, 2016 如何在ejs中执行此操作?
我想问在 JavaFX 中使用自定义对象制作 ListView 的最佳方法,我想要一个每个项目如下所示的列表: 我搜了一下,发现大部分人都是用细胞工厂的方法来做的。有没有其他办法?例如使用客户 fxm
我是一名优秀的程序员,十分优秀!