- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一台机器上运行 docker-compose 以下内容:
当我触发构建(或由 git push 触发)时,无人机在这个问题上不断失败:
git init
Initialized empty Git repository in /drone/src/.git/
git remote add origin http://my-git/amaziagur/location-service.git
git fetch --no-tags origin +refs/heads/master:
fatal: unable to access 'http://my-git/amaziagur/location-service.git/': Couldn't resolve host 'my-git'
exit status 128
这是 docker-compose.yml:
version: '2'
services:
#PROXY
gitlab:
image: 'gitlab/gitlab-ce:9.1.0-ce.0'
restart: always
hostname: 'my-git'
links:
- postgresql:postgresql
- redis:redis
environment:
GITLAB_OMNIBUS_CONFIG: |
postgresql['enable'] = false
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_host'] = "postgresql"
gitlab_rails['db_port'] = "5432"
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
redis['enable'] = false
gitlab_rails['redis_host'] = 'redis'
gitlab_rails['redis_port'] = '6379'
external_url 'http://my-git'
gitlab_rails['gitlab_shell_ssh_port'] = 30022
ports:
# both ports must match the port from external_url above
- "80:80"
# the mapped port must match ssh_port specified above.
- "30022:22"
# the following are hints on what volumes to mount if you want to persist data
volumes:
- /data/gitlab/config:/etc/gitlab:rw
- /data/gitlab/logs:/var/log/gitlab:rw
- /data/gitlab/data:/var/opt/gitlab:rw
postgresql:
restart: always
image: postgres:9.6.2-alpine
environment:
- POSTGRES_USER=gitlab
- POSTGRES_PASSWORD=gitlab
- POSTGRES_DB=gitlabhq_production
# the following are hints on what volumes to mount if you want to persist data
volumes:
- /home/foresight/postgresql:/var/lib/postgresql:rw
redis:
restart: always
image: redis:3.0.7-alpine
# DRONE
drone-server:
image: drone/drone:0.7.3
ports:
- "8000:8000"
networks:
- drone
- gitlab
links:
- gitlab
volumes:
- /home/drone:/var/lib/drone/
environment:
#@@@@@
DRONE_OPEN: "true"
DRONE_HOST: "http://10.0.0.200:8000"
DRONE_ADMIN: amaziagur
DRONE_GITLAB: "true"
DRONE_GITLAB_URL: "http://10.0.0.200"
DRONE_GITLAB_CLIENT: "secret"
DRONE_GITLAB_SECRET: "secret"
DRONE_SECRET: "my_secret"
#@@@@@@@
drone-agent:
image: drone/drone:0.7.3
command: agent
depends_on:
- drone-server
networks:
- drone
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
DRONE_SERVER: ws://drone-server:8000/ws/broker
DRONE_DEBUG: "true"
DRONE_SECRET: "our_secret_4ever_and_ever"
networks:
drone:
driver: bridge
gitlab:
driver: bridge
两者都安装在同一台机器上,我想不通我做错了什么,无人机一直不识别git主机是什么原因。
我已经在我的本地/etc/hosts 和我在网络上找到的/etc/resolve.conf 提示中添加了映射。有人可以帮忙吗?
最佳答案
长话短说
主要原因是因为实际的克隆步骤是由一个临时的独立 docker 容器驱动的,它位于它自己的 docker 网络中。所以它无法解析名称 my-git
,即使它能够解析它,也无法访问它。
预期的解决方法失败:
首先,您会注意到您的错误是关于解析 my-git
。这个必须在实际执行克隆的 docker git 容器实例上解决,而不是在任何其他地方。意思是修改这个docker实例的/etc/hosts
。这可以在您的 .drone.yml
中完成,方法是将克隆步骤替换为您的,并使用 docker-compose
的 extra_hosts
功能(参见 docs)。这是如何完成的:
kind: pipeline
name: default
clone:
disable: true
steps:
- name: myclone
image: docker:git
## If you wanted to solve resolving part
extra_hosts:
- "my-git:10.0.0.200"
## Alas this will also be needed, and is NOT supported yet
# networks:
# - gitlab
commands:
## this will show you if ``my-git`` is resolved.
- ping -c 1 my-git
- git clone http://my-git/amaziagur/location-service.git/
##
## ... your normal steps follows ...
##
唉,如果你的容器现在能够将 my-git
解析为实际的 IP,它仍然无法访问它,因为它是在一个自定义网络中生成的,而不是连接到另一个。
为此,我们还需要能够指定 docker 实例应该连接到的网络,这通常是通过 docker- 中的
(您可以在 docker-compose reference about specifying custom networks 中查看)。networks
键完成的撰写
唉,这在 drone
目前不受支持,并且是目前通过 this issue 跟踪的错误.在撰写本文时,它甚至在 1.0.0-rc.5
中仍未解决。
请注意,如果 networks
键按预期工作,则 extra_hosts
将是多余的。
关于docker - 无人机 CI 在克隆步骤上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46277180/
我们都知道ci" ci' ci( ci[ ... 做。在日常编辑中非常方便。我发现了一些奇怪的东西,并查看了帮助,没有找出原因。 说,我有一个文件: foo "target" foo 'target'
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我的本地 gitlab 安装中有许多存储库。我正在从 Jenkins 迁移到 gitlab 以进行 CI,并且毫无问题地切换了我的第一个 repo。当我添加 .gitlab-ci.yml 时,第二个
我在一个github项目中有几个文件夹,每个文件夹都有一个不同的.travis.yml文件。 设置travis-ci的正确方法是什么,以便我可以指定要构建的文件夹/子项目? 我可以添加before_s
Gitlab 文档说明了以下关于 GIT_STRATEGY: none 的内容: none also re-uses the project workspace, but skips all Git
我想用以下条件配置我的 CI: 当我创建合并请求时 而这个目标分支是 develop 我的工作运行。 我没有找到这个特定工作的文档。 谢谢 最佳答案 在 Gitlab CI 文档中几个小时后,我找到了
我有一个带有子目录 ( test ) 的 gem,其中包含用于测试项目的 Rails 3.1.1 应用程序。我正在尝试设置 Travis-CI 以进行持续集成,但是我不知道如何设置我的 .travis
如何指定:语言:.travis.yml 中的无? 我不指定语言,默认使用 Ruby。 我没有 ruby 。我正在使用 C、C++、Ocaml、Python 和 Felix。 构建脚本只是“制作”。 最
我正在使用 gitlab pages部署作业的输出。我有 3 个不同的工作产生 html输出。一项工作总是在运行。其他 2 个作业是可选的,因此它们是手动运行的。 如何将手 Action 业的输出部署
我在 gitlab.com 上有一个使用 CI 功能的私有(private)存储库。一些 CI 作业会创建存储的工件文件。我刚刚通过将其添加到 CI 配置中实现了一天后自动删除工件: expire_i
假设我为一个项目配置了多个作业,如下所示: build_win32: script: ... build_ios: script: ... unit_tests: script: ...
如何创建跨越多个阶段的 CI 作业以提高并行性? 如下图所示: 这个想法是slow_build应该最早开始build ,但是 test不依赖它,所以 test应该可以尽快启动build已经完成了。 (
我有一个 CI 管道,它可能正在做一些半变态的事情。我们不要争论这部分。 作为 CI 的一部分,我将生成一个工件 ( README.md ),我希望将其提交并推回同一存储库。只需使用 git push
我的项目同时使用nodejs和java 我尝试从 node_js 构建开始,然后安装 java(因为这是一个 npm 模块) 但是安装java的脚本失败了,而且我认为当已经存在java构建时就没有必要
我不想为了运行构建而将每一个小的更改都推送到 .travis.yml 以及对源代码所做的每一个小的更改。使用jenkins,您可以下载jenkins并在本地运行。特拉维斯提供这样的东西吗? Note:
主题。 这是否意味着在免费帐户中我的 api 请求数量有限? 响应部分示例: { "@type": "pending", "remaining_requests": 9, "reposit
有什么办法可以按顺序从舞台运行作业吗?我尝试过使用依赖项来做到这一点 job1: stage:deploy ... job2: stage:deploy dependencies:
我正在努力为多个项目设置 gitlab 运行程序,我们希望能够为所有项目设置环境变量。我尝试在 .bashrc 中为 gitlab-runner 和 root 用户设置全局变量,但在 CI 脚本过程中
Travis 有一种针对不同 PHP 版本测试项目的简单方法。 现在我想为插件运行测试。为此,我编写了一个在 .travis.yml 的安装阶段调用的脚本,它检查主项目并将我的插件源移动到正确的目录中
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。
我是一名优秀的程序员,十分优秀!