CST does not support OCI, if OCI is enabled by dependency bump, windows build fails
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- docker, go
Línea de trabajo
Comienza con go.mod y el objetivo del Makefile utilizado por make cross; después, inspecciona la ruta de dependencias de github.com/docker/docker que termina en pkg/system/filesys_windows.go. Reproduce la compilación cruzada para Windows y el comando OCI de tar-driver con las versiones mostradas. Se considera completado cuando la actualización de dependencias conserva la compatibilidad con OCI y produce un binario de Windows correcto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi,
I try to use CST with OCI Images. Cause reasons, I MUST work without docker. Thus I use the --driver tar.
This does not seem to work with CST:
Error: error creating driver: retrieving image: MANIFEST_UNKNOWN: OCI manifest found, but accept header does not support OCI manifests
./container-structure-test test --driver tar --image harbor.<fqdn>/library/oci:test --config config.yaml
====================================
====== Test file: config.yaml ======
====================================
2020/08/06 20:37:04 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
=== RUN: Metadata Test
--- FAIL
duration: 0s
Error: error creating driver: retrieving image: MANIFEST_UNKNOWN: OCI manifest found, but accept header does not support OCI manifests
=====================================
============== RESULTS ==============
=====================================
Passes: 0
Failures: 1
Duration: 0s
Total tests: 1
FAIL
FATA[0000] FAIL
I did some research, fetched the sourcecode, updated the dependency github.com/google/go-containerregistry to v.0.1.1 and make cross within a go1.9 container
module github.com/GoogleContainerTools/container-structure-test
go 1.14
require (
github.com/GoogleContainerTools/container-diff v0.14.1-0.20190219205308-3f6b025c016c
github.com/Microsoft/hcsshim v0.8.9 // indirect
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d // indirect
github.com/bitly/go-simplejson v0.5.0 // indirect
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
github.com/bshuster-repo/logrus-logstash-hook v0.4.1 // indirect
github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd // indirect
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b // indirect
github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 // indirect
github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba // indirect
github.com/docker/distribution v2.7.1+incompatible
github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916 // indirect
github.com/fsouza/go-dockerclient v1.3.6
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7 // indirect
github.com/google/go-cmp v0.4.1
github.com/google/go-containerregistry v0.1.1
github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33 // indirect
github.com/marstr/guid v1.1.0 // indirect
github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f // indirect
github.com/ncw/swift v1.0.47 // indirect
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.6.0
github.com/spf13/cobra v1.0.0
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 // indirect
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 // indirect
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f // indirect
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8 // indirect
gopkg.in/yaml.v2 v2.3.0
)
This results in:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags " -X github.com/GoogleContainerTools/container-structure-test/pkg/version.version=v1.9.0 -X github.com/GoogleContainerTools/container-structure-test/pkg/version.buildDate=2020-08-06T21:30:33Z " -o out/container-structure-test-linux-amd64 github.com/GoogleContainerTools/container-structure-test/cmd/container-structure-test
sha256sum out/container-structure-test-linux-amd64 &> out/container-structure-test-linux-amd64.sha256
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags " -X github.com/GoogleContainerTools/container-structure-test/pkg/version.version=v1.9.0 -X github.com/GoogleContainerTools/container-structure-test/pkg/version.buildDate=2020-08-06T21:30:33Z " -o out/container-structure-test-darwin-amd64 github.com/GoogleContainerTools/container-structure-test/cmd/container-structure-test
ad913da4a1d6603b48fa789a5a5903ff3ee2eb76ff2a2c9fbf2169908e72c40e out/container-structure-test-linux-amd64
sha256sum out/container-structure-test-darwin-amd64 &> out/container-structure-test-darwin-amd64.sha256
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags " -X github.com/GoogleContainerTools/container-structure-test/pkg/version.version=v1.9.0 -X github.com/GoogleContainerTools/container-structure-test/pkg/version.buildDate=2020-08-06T21:30:33Z " -o out/container-structure-test-windows-amd64 github.com/GoogleContainerTools/container-structure-test/cmd/container-structure-test
dfbfe003583538457dc8ca9ad725ebdf99e60d4e806c5fc6d69e3198bcaadb7d out/container-structure-test-darwin-amd64
cp out/container-structure-test-windows-amd64 out/container-structure-test-windows-amd64.exe
sha256sum out/container-structure-test-windows-amd64.exe &> out/container-structure-test-windows-amd64.exe.sha256
rm out/container-structure-test-windows-amd64
The resulting binary does NOT fix the issue. So the error persists.
when I build the same code with go version go1.13.4 linux/amd64
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags " -X github.com/GoogleContainerTools/container-structure-test/pkg/version.version=v1.9.0 -X github.com/GoogleContainerTools/container-structure-test/pkg/version.buildDate=2020-08-06T23:39:23Z " -o out/container-structure-test-linux-amd64 github.com/GoogleContainerTools/container-structure-test/cmd/container-structure-test
sha256sum out/container-structure-test-linux-amd64 &> out/container-structure-test-linux-amd64.sha256
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags " -X github.com/GoogleContainerTools/container-structure-test/pkg/version.version=v1.9.0 -X github.com/GoogleContainerTools/container-structure-test/pkg/version.buildDate=2020-08-06T23:39:23Z " -o out/container-structure-test-darwin-amd64 github.com/GoogleContainerTools/container-structure-test/cmd/container-structure-test
sha256sum out/container-structure-test-darwin-amd64 &> out/container-structure-test-darwin-amd64.sha256
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags " -X github.com/GoogleContainerTools/container-structure-test/pkg/version.version=v1.9.0 -X github.com/GoogleContainerTools/container-structure-test/pkg/version.buildDate=2020-08-06T23:39:23Z " -o out/container-structure-test-windows-amd64 github.com/GoogleContainerTools/container-structure-test/cmd/container-structure-test
# github.com/docker/docker/pkg/system
/root/go/pkg/mod/github.com/docker/[email protected]/pkg/system/filesys_windows.go:112:24: cannot use uintptr(unsafe.Pointer(&sd[0])) (type uintptr) as type *"golang.org/x/sys/windows".SECURITY_DESCRIPTOR in assignment
make: *** [Makefile:51: out/container-structure-test-windows-amd64] Error 2
so the windows binary fails. This seems to be caused by https://github.com/golang/go/issues/34610
BUT my issue is fixed!
./container-structure-test-linux-amd64 test --driver tar --image harbor.<fqdn>/library/oci:test --config config.yaml
====================================
====== Test file: config.yaml ======
====================================
=== RUN: Metadata Test
--- FAIL
duration: 0s
Error: label built-date not found in image metadata
=====================================
============== RESULTS ==============
=====================================
Passes: 0
Failures: 1
Duration: 0s
Total tests: 1
FAIL
FATA[0005] FAIL
Since I don't use windows it is ok for me. I guess I need to bump a dependency which depends on /docker/[email protected]
But since the changed line in the dependencies is the only line I ever did in a go - programm I am unable to find the correct dependency.
I am willing to dig into this more, but need some fingerpoints to help me.
And if someone has an explanation, why the functionality is so different with different go versions I would be thankful.
--sluetze
- Lenguaje dominante
- Go
- Estrellas
- 2.5k
- Forks
- 213
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de GoogleContainerTools/container-structure-test
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
allstar
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
GoogleContainerTools/container-structure-test#393 · 639 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
GoogleContainerTools/container-structure-test#280 · 1 reacción ·
-
go.mod pins vulnerable docker/containerd modules; two open Dependabot PRs clear most findingsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Windows: structure_test binary missing .exe extension causes "Open With" dialog instead of running testsPosiblemente ocupada @peakschris la tomó hace 144 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Todos los issues de GoogleContainerTools/container-structure-test
Issues similares
-
Dokumentasjon på nais defaultsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
agent-butler-finding bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jordansmall/spindrift#6161 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
open-telemetry/opentelemetry-go-compile-instrumentation#1635 ·
Los mantenedores suelen responder en 2 días
-
C-bug O-community X-blathers-untriaged
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
cockroachdb/cockroach#176210 · 1 comentario ·
-
VLAgent `spec.k8sCollector.includePodLabels: false` has no effectPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
VictoriaMetrics/operator#2772 ·
Los mantenedores suelen responder en 1 día