0

我尝试使用自定义 docker-compose 启动 Concourse CI

version: '2'
services:
    concourse-web:
        image: concourse/concourse
        container_name: concourse-web
        command: web
        network_mode: host
        volumes: ["./keys/web:/concourse-keys"]
        environment:
            CONCOURSE_BASIC_AUTH_USERNAME: concourse
            CONCOURSE_BASIC_AUTH_PASSWORD: changeme
            CONCOURSE_EXTERNAL_URL: http://my.internal.ip:8092
            CONCOURSE_BIND_PORT: 8092
            CONCOURSE_POSTGRES_DATA_SOURCE: |-
                postgres://odoo:odoo@localhost:5432/concourse?sslmode=disable

    concourse-worker:
        image: concourse/concourse
        container_name: concourse-worker
        network_mode: host
        privileged: true
        command: worker
        volumes: ["./keys/worker:/concourse-keys"]
        environment:
            CONCOURSE_BIND_PORT: 8092

并且工作人员无法连接到 Web 部件。你能帮我解决这个问题吗?

PS 数据库 postgtresql 在主机上的 5432 端口上启动,并且连接正常。

工人错误:

{"timestamp":"1487953300.400844336","source":"tsa","message":"tsa.connection.channel.forward-worker.register.failed-to-fetch-containers","log_level":2,"data":{"error":"invalid character '\u003c' looking for beginning of value","remote":"127.0.0.1:57960","session":"4.1.1.582"}}
4

2 回答 2

0

您需要将CONCOURSE_TSA_HOST: concourse-web工作人员设置为环境变量,以便它知道要连接到哪个主机。现在它正在尝试连接到 localhost 上的 Web 部件,但这是不正确的。

您的配置的另一个问题是您尝试通过 localhost: 连接到 Postgres CONCOURSE_POSTGRES_DATA_SOURCE: |- postgres://odoo:odoo@localhost:5432/concourse?sslmode=disable,但您的 Postgres 实例正在主机上运行。主机在 docker 容器内的 localhost 上不可用,因为 docker 容器有自己的专用网络。它应该是:

CONCOURSE_POSTGRES_DATA_SOURCE: |- postgres://odoo:odoo@my.internal.ip:5432/concourse?sslmode=disable

于 2017-05-30T09:04:20.420 回答
-1

|- postgres://odoo:odoo@localhost:5432/concourse?sslmode=disable

应该删除整个前缀。用。。。来代替

CONCOURSE_POSTGRES_DATA_SOURCE: postgres://odoo:odoo@localhost:5432/concourse?sslmode=disable

于 2017-02-24T18:15:52.403 回答