Docker Swarm 환경에서 CD를 적용하기 위해 코드 저장소 변경 및 Redis 메시지를 수신하는 GO 응용 프로그램이 있습니다. 이 응용 프로그램은 최근 github.com/docker/docker
v1.13.1 클라이언트 코드를 사용하도록 업데이트되었습니다. 그것은 Docker v1.13.1을 실행하는 내 Mac에서 일했습니다. Ubuntu 및 Docker v1.12.6을 실행하는 개발 서버에이 코드를 배포하면 cli.ServiceUpdate(..)
을 호출 할 때 "EOF"오류가 발생합니다. 내가 아는 한 CLI 클라이언트는 이전 버전과 호환됩니다 (v1.10.x 또는 그 전까지). 코드와 스크린 샷을 볼 때 두 서비스 사이의 연결은 "서비스를 업데이트하는 중 오류가 발생했습니다"라는 로그 메시지입니다.Docker 서비스 업데이트 오류 : EOF
func updateService(s configuration.Service, version string) {
createClient()
ctx := context.Background()
service, _, err := cli.ServiceInspectWithRaw(ctx, configuration.ServiceName(s))
if err != nil {
fmt.Println("could not find service", err)
return
}
serviceSpec := createServiceSpec(s, version)
encodedRegistryAuth := createEncodedRegistryAuth()
var resp types.ServiceUpdateResponse
resp, err = cli.ServiceUpdate(ctx, service.ID, service.Version, serviceSpec, types.ServiceUpdateOptions{EncodedRegistryAuth: encodedRegistryAuth})
if err != nil {
fmt.Println("An error occurred while updating a service: ", s.Service, "; ", err)
} else {
message := "SERVICE UPDATE - " + s.Service + "_" + s.Channel + " >> " + envName + ":" + s.Service + ":" + version
connections.SlackMessage(message)
connections.NewRelicDeploy(version, message)
connections.GrafanaDeploy(version, message)
fmt.Println("Updated service", s.Service, "and waiting", s.UpdateDelay)
fmt.Println("Warnings from service update", resp.Warnings)
}
}
: 여기
func createClient() {
if cli == nil {
defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
var err error
cli, err = client.NewClient("unix:///var/run/docker.sock", "v1.24", nil, defaultHeaders)
if err != nil {
panic(err)
}
}
}
가 잘못된 코드 :
이벤트는 우리가, 우리는 우리의 클라이언트 초기화의 API 버전 v1.24를 지정 golang 라이브러리의 v1.13.1 버전을 사용하는 생각
: 여기는 syslog에 무슨 일이 있었는지의 화면 잡아입니다여기
입니다 docker info
의 출력 : 내가 잘못 일을 할 수 있는지에
Client:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:40:44 2017
OS/Arch: linux/amd64
Experimental: true
Server:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:40:44 2017
OS/Arch: linux/amd64
Experimental: true
어떤 아이디어?