Concourse CI Windows Worker

时间:2017-07-21 14:19:10

标签: concourse

我正在尝试使用 Windows 7 工作人员设置Concourse CI环境。

我有一台机器在 Ubuntu Server(16.04)托管我的TSA服务器和一名工作人员(用于支持git资源),第二台在 Windows 7 下托管工人。

一切似乎都很好:

  • 我可以登录网络ui
  • fly -t my_concourseci workers命令返回:

    name      containers  platform  tags  team  state    version
    ubuntu    1           linux     none  none  running  1.1
    windows7  0           windows   none  none  running  1.1
    
  • fly -t my_concourseci execute -c test.yml命令返回:

    executing build 146
    initializing
    running echo Hello World!
    Hello World!
    

    test.yml 文件中包含以下内容:

    platform: windows
    
    run:
      path: echo
      args: [ "Hello World!" ]
    

然而,当我在任务中添加输入时:

    platform: windows

    > inputs:
    >  - name: concourse

    run:
      path: echo
      args: [ "Hello World!" ]

我收到以下错误:

executing build 148
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100 5698k    0 5698k    0     0  1948k      0 --:--:--  0:00:02 --:--:-- 1949k
initializing
failed to stream in to volume
errored

如果我查看windows worker日志,我会收到此错误:

{"timestamp":"1500642862.643555164",
"source":"baggageclaim",
"message":"baggageclaim.api.volume-server.stream-in.bad-stream-payload",
"log_level":1,
"data":{"error":"tar extract failed (exit status 2). output: \"\\ngzip: stdin: not in gzip format\\n/usr/bin/tar: Child returned status 1\\n/usr/bin/tar: Error is not recoverable: exiting now\\n\"",
"session":"2.1.8730",
 "volume":"15bf1fc6-0727-4962-6c84-18446e54ab96"}
}

关于什么可能导致not in gzip format错误的任何想法?知道如果我在linux平台上运行完全相同的任务,每一个都可以正常工作。

platform: linux

image_resource:
  type: docker-image
  source: {repository: busybox}

inputs:
 - name: concourse


run:
  path: echo
  args: [ "Hello World!" ]
----- STDOUT
executing build 149
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100 5699k    0 5699k    0     0  1917k      0 --:--:--  0:00:02 --:--:-- 1918k
initializing
Pulling busybox@sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4...
sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4: Pulling from library/busybox
9e87eff13613: Pulling fs layer
9e87eff13613: Verifying Checksum
9e87eff13613: Download complete
9e87eff13613: Pull complete
Digest: sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4
Status: Downloaded newer image for busybox@sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4

Successfully pulled busybox@sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4.

running echo Hello World!
succeeded

感谢。

2 个答案:

答案 0 :(得分:0)

以管理员身份启动powershell,然后从那里运行concourse_worker.exe。这对我有用。

我基于此AMI ami-e1876a98在AWS上运行Windows Server 2016 Base

答案 1 :(得分:0)

感谢您的回答,这有助于我解决问题。

我在 MSYS 1.0 环境中启动了concourse worker。问题是 MSYS tar中包含gunzip$PATH个二进制文件。当我在 Power Shell cmd.exe 中启动concourse worker而{{1}中没有任何 MSYS 类似unix的二进制文件时它就像一个魅力!

注意:确保$PATH Windows环境变量中没有 MSYS 二进制文件,以确保其工作正常,尤其是检查Git-Bash环境工具是否未添加到Windows $ PATH环境变量。

再次感谢。