contraband / autopilot

cf plugin for hands-off, zero downtime application deploys
Apache License 2.0
130 stars 43 forks source link

Autopilot fails on Alpine #50

Open rjain-pivotal opened 6 years ago

rjain-pivotal commented 6 years ago

https://github.com/cloudfoundry/cli/issues/1314

After looking into this issue, it appears that the plugin is actually not complied statically!

$ ldd autopilot-linux linux-vdso.so.1 => (0x00007ffdb6394000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8b0a778000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8b0a398000) /lib64/ld-linux-x86-64.so.2 (0x00007f8b0a997000) So it fails during the cf install-plugin step in your docker file because alpine Linux does not have those libraries. The CF CLI tries to run the plugin it's installing during the install-plugin phase to get metadata about said plugin and a segfault occurs, thus causing the error you see in front of you.

There are two solutions:

Compile the autopilot plugin yourself with the following build command: $ CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -a -tags netgo -installsuffix netgo -ldflags "-w -s -extldflags \"-static\"" -o autopilot-linux submit an issue against autopilot