Arm64 docker images are broken on all 1.5.16+ versions
alexander-fedora-docusign-com opened this issue · comments
Describe the bug
After 1.5.15 all new images are smaller, and seems to lack some essential files.
Any build after 1.5.16 will show error: exec ./wiremock-net: no such file or directory
.
Seems like something changed from 1.5.15 to 1.5.16. version which made docker images broken.
Expected behavior:
Server should start instead of showing error exec ./wiremock-net: no such file or directory
.
Test to reproduce
- Run following on Apple Mac Book Pro M1
docker run --rm -p 9091:80 sheyenrath/wiremock.net-arm64:latest
Other related info
➜ ~ docker run --rm -p 9091:80 sheyenrath/wiremock.net-arm64:latest
exec ./wiremock-net: no such file or directory
➜ ~ docker run --rm -p 9091:80 sheyenrath/wiremock.net-arm64:1.5.16
exec ./wiremock-net: no such file or directory
➜ ~ docker run --rm -p 9091:80 sheyenrath/wiremock.net-arm64:1.5.15
09/17/2023 22:22:58 [Info] : By Stef Heyenrath (https://github.com/WireMock-Net/WireMock.Net)
09/17/2023 22:22:58 [Debug] : Server settings {
"Port": null,
"UseSSL": null,
"HostingScheme": null,
"StartAdminInterface": true,
"ReadStaticMappings": false,
"WatchStaticMappings": false,
"WatchStaticMappingsInSubdirectories": false,
"ProxyAndRecordSettings": null,
"Urls": [
"http://*:80"
],
"StartTimeout": 10000,
"AllowPartialMapping": false,
"AdminUsername": null,
"AdminPassword": null,
"AdminAzureADTenant": null,
"AdminAzureADAudience": null,
"RequestLogExpirationDuration": null,
"MaxRequestLogCount": null,
"CorsPolicyOptions": 0,
"AllowCSharpCodeMatcher": false,
"AllowBodyForAllHttpMethods": false,
"AllowOnlyDefinedHttpStatusCodeInResponse": false,
"DisableJsonBodyParsing": false,
"DisableRequestBodyDecompressing": null,
"HandleRequestsSynchronously": false,
"ThrowExceptionWhenMatcherFails": false,
"CertificateSettings": null,
"CustomCertificateDefined": false,
"ClientCertificateMode": 0,
"AcceptAnyClientCertificate": false,
"WebhookSettings": null,
"UseRegexExtended": true,
"SaveUnmatchedRequests": false,
"DoNotSaveDynamicResponseInLogEntry": false,
"QueryParameterMultipleValueSupport": null
}
09/17/2023 22:22:58 [Info] : Server using .NET 6.0
09/17/2023 22:22:58 Press Ctrl+C to shut down
09/17/2023 22:22:58 WireMock.Net server running
^C09/17/2023 22:22:59 WireMock.Net server stopping because 'CancelKeyPress'
09/17/2023 22:22:59 WireMock.Net server stopped
Docker file inspection:
➜ ~ docker run -it --rm -p 9091:80 --entrypoint="sh" sheyenrath/wiremock.net-arm64:1.5.34
/app # ls -la | grep wiremock-net
-rwxr-xr-x 1 root root 200424 Aug 4 09:58 wiremock-net
-rw-r--r-- 1 root root 219979 Aug 4 09:58 wiremock-net.deps.json
-rw-r--r-- 1 root root 6656 Aug 4 09:58 wiremock-net.dll
-rw-r--r-- 1 root root 22000 Aug 4 09:58 wiremock-net.pdb
-rw-r--r-- 1 root root 479 Aug 4 09:58 wiremock-net.runtimeconfig.json
/app # ./wiremock-net
sh: ./wiremock-net: not found
/app # dotnet ./wiremock-net.dll
Failed to load /app/libhostpolicy.so, error: Error loading shared library ld-linux-aarch64.so.1: No such file or directory (needed by /app/libhostpolicy.so)
An error occurred while loading required library libhostpolicy.so from [/app/]
/app # uname -a
Linux 3e00009423c6 5.15.49-linuxkit-pr #1 SMP PREEMPT Thu May 25 07:27:39 UTC 2023 aarch64 Linux
/app # uname -r
5.15.49-linuxkit-pr
Size change from 1.5.15 to 1.5.16:
Docker info:
➜ ~ docker info
Client:
Version: 24.0.5
Context: desktop-linux
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2-desktop.1
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.20.2-desktop.1
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-compose
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.0
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-dev
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.20
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-extension
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v0.1.0-beta.6
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-init
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-sbom
scan: Docker Scan (Docker Inc.)
Version: v0.26.0
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-scan
scout: Command line tool for Docker Scout (Docker Inc.)
Version: 0.20.0
Path: /Users/alexander.fedora/.docker/cli-plugins/docker-scout
Server:
Containers: 15
Running: 0
Paused: 0
Stopped: 15
Images: 304
Server Version: 24.0.5
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc version: v1.1.7-0-g860f061
init version: de40ad0
Security Options:
seccomp
Profile: unconfined
cgroupns
Kernel Version: 5.15.49-linuxkit-pr
Operating System: Docker Desktop
OSType: linux
Architecture: aarch64
CPUs: 8
Total Memory: 19.52GiB
Name: docker-desktop
ID: 359ce805-fac8-4053-a8ae-820129f67050
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
127.0.0.0/8
Live Restore Enabled: false
WARNING: daemon is not using the default seccomp profile
@alexander-fedora-docusign-com
Thanks for the detailed analysis.
I've to check this in detail...
(I was building these images in PI-4, but I had to deinstall some things because I was running out of space...)