Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jwilder nginx docker镜像后使用gitea设置无人机_Docker_Nginx_Drone_Gitea - Fatal编程技术网

如何在jwilder nginx docker镜像后使用gitea设置无人机

如何在jwilder nginx docker镜像后使用gitea设置无人机,docker,nginx,drone,gitea,Docker,Nginx,Drone,Gitea,使用我的gitea实例设置drone时遇到了一些问题,因为在过去几年中,对于drone的不同环境变量,有太多不同配置的指南,我无法按照我的方式设置。 是的,我知道,他们明确表示“我们强烈建议在专用实例上安装无人机。我们不为在同一实例上安装无人机和Gitea提供最终用户支持。我们不为解决单实例安装导致的网络复杂问题提供最终用户支持。”但我想一定有办法把它安装在同一台服务器上 我当前的设置 无人机docker-compose.yaml 无人机对应的(自动生成的)nginx配置 (gite

使用我的gitea实例设置drone时遇到了一些问题,因为在过去几年中,对于drone的不同环境变量,有太多不同配置的指南,我无法按照我的方式设置。 是的,我知道,他们明确表示“我们强烈建议在专用实例上安装无人机。我们不为在同一实例上安装无人机和Gitea提供最终用户支持。我们不为解决单实例安装导致的网络复杂问题提供最终用户支持。”但我想一定有办法把它安装在同一台服务器上

我当前的设置
无人机docker-compose.yaml 无人机对应的(自动生成的)nginx配置 (gitea是相等的,但子域不同)

gitea_客户端_id和密码通过gitea webinterface创建,重定向url设置为
https://drone.mydomain.tld/login

下面是我在访问drone.mydomain.tld时看到的内容

单击“授权”应用程序后,“我的浏览器”中的url请求将更改为,并仅加载,直到nginx抛出502。在初始授权之后,每个请求只会产生以下日志和erorr

nginx日志 无人机日志 gitea原木 页面源 这就是我的浏览器在javascript激活时显示的内容


无人机|持续集成
很抱歉,如果未启用JavaScript,Drone无法正常工作。请使其继续。

是否有任何配置我错过了或任何环境变量是过时的(我遵循不同的指南,但最终检查一切与)?有没有人运行类似的设置,可以与我共享他的配置?我尝试了几乎所有http/https组合和不同过时的无人机环境变量的组合,但从未实现真正的webfrontend

通过将gitea网络添加到无人机容器中,我能够在同一台服务器上运行gitea和drone

打开防火墙也很可能达到同样的效果,但我不确定要更改哪些规则,我不想打开那么多

无人机合成文件的代码段:

networks:
  gitea:
   external:
    name: [name of your gitea service]_default

gitea网络也必须添加到与上述代理类似的网络下的无人机服务中。

我已经一起运行无人机和gitea一段时间了。对我来说,我创建了drone作为gitea域的子域。以下是我的docker-compose.yml脚本,供参考:

version: "3.2"

services:
  git:
    image: gitea/gitea:1
    environment:
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=*********(same as below)
    volumes:
      - ./data:/data
    ports:
      - "22:22"
    depends_on:
      - db
    restart: always
  db:
    image: mariadb:10
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=*******
      - MYSQL_DATABASE=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=***********(same as above)
    volumes:
      - ./db/:/var/lib/mysql

  nginx:
    restart: always
    image: linuxserver/letsencrypt
    links:
      - git
    ports:
      - "80:80"
      - "443:443"
    environment:
      - URL=git.mydomain.com
      - SUBDOMAINS=drone
      - EMAIL=josh@mydomain.com
    volumes:
      - ./nginx:/config
    depends_on:
      - git
      - drone-server

  drone-server:
    image: drone/drone:1
    links:
      - git
    volumes:
      - ./dronedata:/data
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
    environment:
      - DRONE_AGENTS_ENABLED=true
      - DRONE_GITEA_SERVER=https://git.mydomain.com
      - DRONE_GITEA_CLIENT_ID=${DRONE_GITEA_CLIENT_ID}
      - DRONE_GITEA_CLIENT_SECRET=${DRONE_GITEA_CLIENT_SECRET}
      - DRONE_GIT_ALWAYS_AUTH=false
      - DRONE_SERVER_HOST=drone.git.mydomain.com
      - DRONE_SERVER_PROTO=https
      - DRONE_TLS_AUTOCERT=false
      - DRONE_RPC_SECRET=${DRONE_SECRET}
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_ADMIN=joshua

  drone-runner:
    image: drone/drone-runner-docker:1
    links:
      - drone-server
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_HOST=drone-server
      - DRONE_RPC_SECRET=${DRONE_SECRET}
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_RUNNER_NAME=${HOSTNAME}


您是否有可能干扰此过程的防火墙?我对Traefik也有类似的设置,我们通过更改防火墙配置来解决问题。thx,我尝试过这个,但考虑到gitea也在外部网络代理中,我看不到任何变化:(我很确定我只是忽略了一点,但在目标前方10厘米处被卡住,这非常令人沮丧:(
nginx.1    | 2019/11/08 10:44:16 [warn] 3762#3762: *47660 upstream server temporarily disabled while reading response header from upstream, client: 111.111.111.111, server: drone.mydomain.tld, request: "GET /login?XXXXXXXX HTTP/2.0", upstream: "http://172.22.0.8:80/login?XXXXXXXX", host: "drone.mydomain.tld", referrer: "https://drone.mydomain.tld/"
nginx.1    | 2019/11/08 10:44:16 [error] 3762#3762: *47660 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 111.111.111.111, server: drone.mydomain.tld, request: "GET /login?XXXXXXXX  HTTP/2.0", upstream: "http://172.22.0.8:80/login?XXXXXXXX", host: "drone.mydomain.tld", referrer: "https://drone.mydomain.tld/"
nginx.1    | 2019/11/08 10:44:16 [error] 3762#3762: *47660 no live upstreams while connecting to upstream, client: 111.111.111.111, server: drone.mydomain.tld, request: "GET /login?XXXXXXXX HTTP/2.0", upstream: "http://drone.mydomain.tld/login?XXXXXXXX", host: "drone.mydomain.tld", referrer: "https://drone.mydomain.tld/"
{"level":"debug","msg":"api: authentication required","request-id":"1TKR8MAfIewZpiiwn2YkUNEqBrt","time":"2019-11-08T09:50:39Z"}
{"level":"debug","msg":"api: guest access","request-id":"1TKR8MAfIewZpiiwn2YkUNEqBrt","time":"2019-11-08T09:50:39Z"}
{"fields.time":"2019-11-08T09:50:39Z","latency":109385,"level":"debug","method":"GET","msg":"","remote":"172.22.0.2:60330","request":"/api/user","request-id":"1TKR8MAfIewZpiiwn2YkUNEqBrt","time":"2019-11-08T09:50:39Z"}
{"fields.time":"2019-11-08T09:50:39Z","latency":64377,"level":"debug","method":"GET","msg":"","remote":"172.22.0.2:60332","request":"/login","request-id":"1TKR8IicJybGXkQf3ebpiGV4VXi","time":"2019-11-08T09:50:39Z"}
{"level":"debug","msg":"events: stream opened","request-id":"1TKR8Jv7zQrCQSzRyCFbeRLeC8M","time":"2019-11-08T09:50:39Z"}
{"level":"debug","msg":"events: stream cancelled","request-id":"1TKR8Jv7zQrCQSzRyCFbeRLeC8M","time":"2019-11-08T09:51:39Z"}
{"level":"debug","msg":"events: stream closed","request-id":"1TKR8Jv7zQrCQSzRyCFbeRLeC8M","time":"2019-11-08T09:51:39Z"}
{"level":"debug","msg":"api: guest access","request-id":"1TKR8Jv7zQrCQSzRyCFbeRLeC8M","time":"2019-11-08T09:51:39Z"}
{"fields.time":"2019-11-08T09:51:39Z","latency":60182954972,"level":"debug","method":"GET","msg":"","remote":"172.22.0.2:60334","request":"/api/stream","request-id":"1TKR8Jv7zQrCQSzRyCFbeRLeC8M","time":"2019-11-08T09:51:39Z"}
{"level":"error","msg":"oauth: cannot exchange code: ysvAfRKVkRz4ZtN9zX635Vd-mnB__oXW7Rmqpra1VGU=: Post https://gitea.mydomain.tld/login/oauth/access_token: dial tcp 144.76.155.172:443: connect: connection timed out","time":"2019-11-08T09:52:32Z"}
{"level":"debug","msg":"cannot authenticate user: Post https://gitea.mydomain.tld/login/oauth/access_token: dial tcp 144.76.155.172:443: connect: connection timed out","time":"2019-11-08T09:52:32Z"}
[Macaron] 2019-11-08 10:50:21: Started GET /login/oauth/authorize?client_id=$GITEA_CLIENT_ID&redirect_uri=https%3A%2F%2Fdrone.mydomain.tld%2Flogin&response_type=code&state=c697f48392907a0 for 134.96.216.2
[Macaron] 2019-11-08 10:50:21: Completed GET /login/oauth/authorize?client_id=$GITEA_CLIENT_ID&redirect_uri=https%3A%2F%2Fdrone.mydomain.tld%2Flogin&response_type=code&state=c697f48392907a0 302 Found in 58.954698ms
[Macaron] 2019-11-08 10:50:39: Started GET /login/oauth/authorize?client_id=$GITEA_CLIENT_ID&redirect_uri=https%3A%2F%2Fdrone.mydomain.tld%2Flogin&response_type=code&state=68255aaf95e94627 for 134.96.216.2
[Macaron] 2019-11-08 10:50:39: Completed GET /login/oauth/authorize?client_id=$GITEA_CLIENT_ID&redirect_uri=https%3A%2F%2Fdrone.mydomain.tld%2Flogin&response_type=code&state=68255aaf95e94627 302 Found in 78.11159ms
networks:
  gitea:
   external:
    name: [name of your gitea service]_default
version: "3.2"

services:
  git:
    image: gitea/gitea:1
    environment:
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=*********(same as below)
    volumes:
      - ./data:/data
    ports:
      - "22:22"
    depends_on:
      - db
    restart: always
  db:
    image: mariadb:10
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=*******
      - MYSQL_DATABASE=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=***********(same as above)
    volumes:
      - ./db/:/var/lib/mysql

  nginx:
    restart: always
    image: linuxserver/letsencrypt
    links:
      - git
    ports:
      - "80:80"
      - "443:443"
    environment:
      - URL=git.mydomain.com
      - SUBDOMAINS=drone
      - EMAIL=josh@mydomain.com
    volumes:
      - ./nginx:/config
    depends_on:
      - git
      - drone-server

  drone-server:
    image: drone/drone:1
    links:
      - git
    volumes:
      - ./dronedata:/data
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
    environment:
      - DRONE_AGENTS_ENABLED=true
      - DRONE_GITEA_SERVER=https://git.mydomain.com
      - DRONE_GITEA_CLIENT_ID=${DRONE_GITEA_CLIENT_ID}
      - DRONE_GITEA_CLIENT_SECRET=${DRONE_GITEA_CLIENT_SECRET}
      - DRONE_GIT_ALWAYS_AUTH=false
      - DRONE_SERVER_HOST=drone.git.mydomain.com
      - DRONE_SERVER_PROTO=https
      - DRONE_TLS_AUTOCERT=false
      - DRONE_RPC_SECRET=${DRONE_SECRET}
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_ADMIN=joshua

  drone-runner:
    image: drone/drone-runner-docker:1
    links:
      - drone-server
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_HOST=drone-server
      - DRONE_RPC_SECRET=${DRONE_SECRET}
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_RUNNER_NAME=${HOSTNAME}