我想做
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
似乎plugins/docker可以做我想做的事,但如果我不指定与发布相关的东西,它就会失败。我想在不发布的情况下使用它。
另一种选择可能是服务,但我尝试总是失败
来自docs.drone.io/docker_dind的代码
kind: pipeline
name: default
steps:
- name: test
image: docker:dind
volumes:
- name: dockersock
path: /var/run
commands:
- sleep 5 # give docker enough time to start
- docker ps -a
- docker-compose -v # new
services:
- name: docker
image: docker:dind
privileged: true
volumes:
- name: dockersock
path: /var/run
volumes:
- name: dockersock
temp: {}
Run Code Online (Sandbox Code Playgroud)
错误:
/usr/drone/bin/init: line 23: docker-compose: not found
Run Code Online (Sandbox Code Playgroud) 我们的项目嵌套在单一存储库中。想象一下,我们在“projects”文件夹中有一个项目。例如“项目/我们的项目”。好吧,我们希望能够将我们的 .drone.yml 检查到“我们的项目”中,但看起来 Drone 想要项目根目录下的配置文件,这没关系,我们可以通过更改“命令”部分。我们遇到的麻烦是我们只想在“我们的项目”中的某些内容发生变化时运行构建。我找不到用 Drone 精确做到这一点的方法,所以我们下一个最接近的赌注是条件,我想我们可以为“我们的项目”创建命名空间的所有分支,比如“我们的项目/某个分支”。然后我们可以设置一个条件,只在“our-project/some-branch”和“master”上运行构建,这将限制我们从其他项目分支运行的“假构建”的数量:
build:
when:
branch:
- master
- our-project/*
Run Code Online (Sandbox Code Playgroud)
问题是当我们尝试将请求从“our-project/ ”分支拉到“master”时,构建不会运行,我猜是因为它是在不在 master 或“我们的”中的合并提交上运行的-项目/ “
我的问题有两个方面:1. 使用单存储库模式(多个项目,一个存储库)利用无人机的最佳方法是什么 2. 如果 Drone 不支持该模式或不是为它设计的,那么什么是限制“假构建”的最佳解决方法
注意:我们可以在构建开始时检查子文件夹中的更改,如果没有则返回绿色。我这是推荐的方法吗?
有没有办法在无人机完成或超时之前将其杀死?
无人机的默认超时为6小时(https://github.com/drone/drone/blob/master/cmd/drone/drone.go#L32)而且,如果您的makefile中有一个错误,那就是卡住了,那么您需要等待6个小时。
如果同时构建的数量有限,这将特别令人讨厌。我的问题是关于自托管的开源版本,而不是托管版本,如果有任何区别的话。
文档显示如何将文件设置为秘密envvar http://readme.drone.io/0.5/secrets/
有没有方便的方法来做相反的事情?例如,在.ssh/id_rsa中使用此ssh密钥并具有所有正确的权限.
而且,通过"方便",我显然意味着无需打字mkdir,>或者chmod
我们将无人机用于 CI 并在无人机内运行 Cypress 来测试我们的应用程序(Angular 7)。
所有测试在我的本地机器上运行良好,但在 CI 中,由于 Chrome 渲染器崩溃,测试失败。大约 50% 的失败,即使它们真的不长也不复杂(大多数只有大约 5-10 行)。
我知道这是一个已知问题 ( https://github.com/cypress-io/cypress/issues/350 ) 并花了相当多的时间尝试在线提出的各种修复程序。我已经尝试过:
该修复程序主要推广,设置--ipc=host目前不适用于无人机(https://discourse.drone.io/t/does-drone-support-ipc-host-option/1049)。
我实际上有点困惑,因为原始票证明确指出When running headlessly on very long and memory intense applications we are seeing renderer crashes with Docker.我很确定我们的应用程序既不符合条件very long也不符合条件memory intense(Chrome 任务管理器说页面消耗大约 50-80mb),所以也许我们的问题实际上是其他问题?
如果我在这里遗漏了一些东西,任何人都可以提供更多提示吗?
我正在尝试为无人机实例创建一个服务角色,该角色构建一个 docker 镜像并将其推送到 Google Container Registry。
它适用于角色project>owner(大概project>editor也适用)。我一直无法找到一种方法来限制它只能获得推送到 GCR 的权限,或者找出最低权限是什么。
我的团队和爱好者.
我以本地方式测试了Drone.io,我喜欢它.
有没有办法在本地使用Drone.io而无需推送到存储库?
我想在开发人员环境中使用它,这意味着开发人员可以在推送到存储库之前测试他们的代码.
有可能这样做吗?
我正在尝试从gitlab ci转到drone.io.但我不能让DIND在gitlab上运行良好.以上是我在gitlab上的表现.
variables:
NODE_ENV: 'test'
DOCKER_DRIVER: overlay
image: gitlab/dind
services:
- docker:dind
cache:
untracked: true
stages:
- test
test:
stage: test
before_script:
- docker info
- docker-compose --version
- docker-compose pull
- docker-compose build
after_script:
- docker-compose down
script:
- docker-compose run --rm api yarn install
Run Code Online (Sandbox Code Playgroud)
如何创建等效的无人机文件?
我正在尝试 在数字海洋的一些教程之后在我的服务器上安装和配置drone.io.但是,当我尝试授权我的帐户(xxx.xxx.:8080/login)时,我得到一个空白网页,其中包含http 400状态代码,我重定向的最终网址如下所示:.xxx.xxx.xxx.xxx:8080/api/auth/github.com?code=28c9ea949a200523edasdaae&state=V5dsadaKLDQC4MASSMFUH2MLF5ZVSNCWNOIDEQ7JSVR4HLAW7EMGX4NJA%3D%3D%3D%3D
我该如何调试失败的原因?我已成功登录无人机,但我不知道日志的存储位置.我检查了/ var/log但找不到与无人机相关的任何内容.
挖掘代码我发现了一些我无法相信的东西.所有错误都被忽略了吗?
操作系统版本:ubuntu 18.04 lts
无人机版本:1.0.0
docker 版本:18.09.4 docker
-compose 版本:1.23.2
我自己用 docker 和 docker-compose(一个主,两个代理)托管了无人机 ci。
示例管道配置:
---
kind: pipeline
name: integration
steps:
- name: tests
image: private-registry.example.com/nodejs/special
commands:
- npm i
- npm run test
when:
event:
- push
- pull_request
...
Run Code Online (Sandbox Code Playgroud)
无人机的文档是指配置私有注册表而不提供链接或在图像部分中有关管道步骤的文档页面上提供有关如何完成此操作的更多详细信息,说明:
如果镜像不存在,Drone 会指示 Docker 拉取它。如果映像是私有的,您将需要配置注册表凭据。
我发现了这个问题,其中 op 指的是不再存在的文档中的此页面。
问题的作者和接受的答案的作者都使用无人机 cli 通过registry命令向无人机添加注册表。但不幸的是,此命令不再可用。
当前的无人机 cli 使用消息如下所示:
NAME:
drone - command line utility
USAGE: …Run Code Online (Sandbox Code Playgroud) 所以我正在使用drone.io进行构建,我想知道是否可以使用build/deploy/publish步骤:
when:
tag: PRODUCTION
或者类似的东西,就像分支一样.
如果没有,无论如何都要使用$$ DRONE_TAG变量为你做这个或者是否有必要以某种方式操纵git钩子?