代码之家  ›  专栏  ›  技术社区  ›  PaulB

Concourse docker web组件无法运行

  •  1
  • PaulB  · 技术社区  · 8 年前

    我试图从3.5.0 docker图像运行Concourse,并使用docker compose。yml示例作为模板。 我为连接创建了一个桥接的docker网络,然后启动postgres docker容器,在目录web和worker中创建密钥。 包含的web;

    authorised_worker_keys (which is the public key worker_key.pub) 
    session_signing_key                               
    session_signing_key.pub 
    tsa_host_key 
    tsa_host_key.pub
    

    包含的工人;

    tsa_host_key.pub worker_key worker_key.pub
    

    然后在同一docker网络中启动一个web实例;

    docker run -d -p 8080:8080 \
    -e "CONCOURSE_EXTERNAL_URL=http://XXX.XXX.XXX.XXX:8080" \
    -e "CONCOURSE_BASIC_AUTH_USERNAME=concourse" \
    -e "CONCOURSE_BASIC_AUTH_PASSWORD=changeme" \
    -e "CONCOURSE_POSTGRES_HOST=concourse-db" \
    -e "CONCOURSE_POSTGRES_USER=concourse" \
    -e "CONCOURSE_POSTGRES_PASSWORD=changeme" \
    -e "CONCOURSE_POSTGRES_DATABASE=concourse" \
    --name=concourse-web \
    --net=concourse_network \
    -v web:/concourse-keys \
    concourse/concourse web
    

    此web容器失败并记录

    failed to load authorised keys: open : no such file or directory
    

    如果我在postgres容器中执行shell并使用psql登录,我可以看到数据库已经为concourse添加了一些表,因此连接一定已经工作。

    worker容器在我启动时启动并保持运行;

    docker run -d \
    --name=concourse-worker-1 \
    --privileged \
    --net=concourse_network \
    -v worker:/concourse-keys
    -e "CONCOURSE_TSA_HOST=concourse-web" \
    concourse/concourse worker
    

    有没有人知道是什么导致了“无法加载授权密钥”的消息,以及我如何才能战胜它? 如果我在我的笔记本电脑上运行docker compose,它工作得很好,但我不能在我们的环境中运行docker compose。

    1 回复  |  直到 8 年前
        1
  •  1
  •   PaulB    8 年前

    我已经发现了这个问题,并在今天早上纠正了它,所以我将把它张贴在这里,让其他人从我的愚蠢中吸取教训。顺便说一句,我将docker inspect从docker compose文件开始的容器输出与我在其他环境中的输出进行了比较。

    安装需要完整路径,而不是相对路径,即。

    -v /home/concourse/keys/web:/concourse-keys
    

    -v /home/concourse/keys/worker:/concourse-keys
    

    感谢阅读。