我正在尝试使用 Windows 7 工作人员设置Concourse CI环境。
我有一台机器在 Ubuntu Server(16.04)托管我的TSA服务器和一名工作人员(用于支持git资源),第二台在 Windows 7 下托管工人。
一切似乎都很好:
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
感谢。
答案 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环境变量。
再次感谢。