标签: drone

无人机(Docker 中的 Docker-Compose?)

我想做

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)

docker drone.io drone

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

使用“无人机条件”运行构建部分存储库

我们的项目嵌套在单一存储库中。想象一下,我们在“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 不支持该模式或不是为它设计的,那么什么是限制“假构建”的最佳解决方法

注意:我们可以在构建开始时检查子文件夹中的更改,如果没有则返回绿色。我这是推荐的方法吗?

drone.io drone

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

如何停止(杀死)无人机建造

有没有办法在无人机完成或超时之前将其杀死?
无人机的默认超时为6小时(https://github.com/drone/drone/blob/master/cmd/drone/drone.go#L32)而且,如果您的makefile中有一个错误,那就是卡住了,那么您需要等待6个小时。
如果同时构建的数量有限,这将特别令人讨厌。我的问题是关于自托管的开源版本,而不是托管版本,如果有任何区别的话。

drone.io drone

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

如何创建无人机秘密文件?

文档显示如何将文件设置为秘密envvar http://readme.drone.io/0.5/secrets/

有没有方便的方法来做相反的事情?例如,在.ssh/id_rsa中使用此ssh密钥并具有所有正确的权限.

而且,通过"方便",我显然意味着无需打字mkdir,>或者chmod

drone.io drone

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

Cypress 测试失败,因为 Chrome Renderer 在 CI 中崩溃(使用无人机)

我们将无人机用于 CI 并在无人机内运行 Cypress 来测试我们的应用程序(Angular 7)。

所有测试在我的本地机器上运行良好,但在 CI 中,由于 Chrome 渲染器崩溃,测试失败。大约 50% 的失败,即使它们真的不长也不复杂(大多数只有大约 5-10 行)。

我知道这是一个已知问题 ( https://github.com/cypress-io/cypress/issues/350 ) 并花了相当多的时间尝试在线提出的各种修复程序。我已经尝试过:

  • 增加 dev/shm 的大小
  • 升级到最新版本的无人机、无人机代理和柏树
  • 减少 numTestsKeptInMemory 设置

该修复程序主要推广,设置--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),所以也许我们的问题实际上是其他问题?

如果我在这里遗漏了一些东西,任何人都可以提供更多提示吗?

google-chrome drone angular cypress

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

读取/写入 Google Container Registry 所需的服务帐户的最低权限/角色是什么?

我正在尝试为无人机实例创建一个服务角色,该角色构建一个 docker 镜像并将其推送到 Google Container Registry。

它适用于角色project>owner(大概project>editor也适用)。我一直无法找到一种方法来限制它只能获得推送到 GCR 的权限,或者找出最低权限是什么。

服务帐号角色

google-cloud-platform drone google-container-registry

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

Drone.io在本地构建而不会推送到repo

我的团队和爱好者.

我以本地方式测试了Drone.io,我喜欢它.

有没有办法在本地使用Drone.io而无需推送到存储库?

我想在开发人员环境中使用它,这意味着开发人员可以在推送到存储库之前测试他们的代码.

有可能这样做吗?

continuous-integration drone.io drone

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

在drone.io上使用dind

我正在尝试从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)

如何创建等效的无人机文件?

continuous-integration drone.io drone

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

无人机日志存储在哪里?

我正在尝试 在数字海洋的一些教程之后在我的服务器上安装和配置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但找不到与无人机相关的任何内容.

挖掘代码我发现了一些我无法相信的东西.所有错误都被忽略了吗?

go digital-ocean drone.io drone

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

DRONE_ADMIN用户的默认管理员密码是什么?

在首次使用docker-compose文件安装并按照安装说明进行操作时封闭注册 DRONE_ADMIN用户的默认密码是什么?

Web前端不允许您在没有登录的情况下访问它,也无法在没有登录的情况下使用CLI创建新用户。

docker drone.io drone

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

如何从无人机 ci 管道中的私有 docker 注册表中提取图像

回答

问题

  • 我需要在我的测试管道中使用来自私有 docker 镜像注册表的镜像
  • 我找不到任何(编辑:被忽略的)最新文档,说明如何将私有 docker 注册表与无人机一起使用或使用专门配置的存储库。

情况

操作系统版本: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)

docker drone.io drone

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

Drone.io按标签名称过滤

所以我正在使用drone.io进行构建,我想知道是否可以使用build/deploy/publish步骤:

when: tag: PRODUCTION

或者类似的东西,就像分支一样.

如果没有,无论如何都要使用$$ DRONE_TAG变量为你做这个或者是否有必要以某种方式操纵git钩子?

drone

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