-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[issue-15] reasonably support older linux distributions #16
base: master
Are you sure you want to change the base?
Conversation
Showing the contents of the container with the change. [root@f615b1063840 app]# ldd /usr/local/bin/linkerd-tcp
linux-vdso.so.1 => (0x00007ffcbeb80000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007feb41055000)
librt.so.1 => /lib64/librt.so.1 (0x00007feb40e4b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007feb40c2f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007feb40a21000)
libc.so.6 => /lib64/libc.so.6 (0x00007feb406c7000)
/lib64/ld-linux-x86-64.so.2 (0x000055adcfe9d000)
libm.so.6 => /lib64/libm.so.6 (0x00007feb40444000)
[root@f615b1063840 app]# rpm -qf /lib64/libc.so.6
glibc-2.5-123.el5_11.3
[root@f615b1063840 app]# /usr/local/bin/linkerd-tcp --help
linkerd-tcp 0.0.2
A native TCP proxy for the linkerd service mesh
USAGE:
linkerd-tcp <PATH>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
ARGS:
<PATH> Config file path. |
Hey @JustinVenus, thanks for putting this together! This approach looks good, but would you mind putting it in a separate Dockerfile (maybe |
@klingerf I've made the suggested changes. Thanks for the quick feedback 😄 |
@JustinVenus Ok, great, thanks for updating. Can you also add a note about how to use this new Dockerfile in the |
@klingerf I was looking at what you've posted for issue 20 and you inspired me. How about a build script instead of a docker image? The output could be used for binary releases (which I personally prefer to docker images). #!/bin/bash
IMAGE=alexcrichton/rust-slave-dist:2015-10-20b
TARGET=x86_64-unknown-linux-gnu
RUST_VERSION=1.16.0
RUST_SOURCE="https://static.rust-lang.org/dist/rust-${RUST_VERSION}-${TARGET}.tar.gz"
if [[ -d "target/${TARGET}" ]]; then
rm -rf "target/${TARGET}"
fi
docker run \
--rm -v `pwd`:/rust/app \
-u root \
-w /rust/app \
--entrypoint=/bin/bash \
${IMAGE} \
-c "cd /tmp && \
(curl -L ${RUST_SOURCE} | gzip -dc | tar xf -)&& \
./rust-${RUST_VERSION}-${TARGET}/install.sh --without=rust-docs && \
cd - && \
cargo build --release --target=${TARGET}" The produced binary works on (Ubuntu-12.04 and Centos5, I suspect newer distros will work just the same) w/o requiring any installation of extra packages. $ ./linkerd-tcp --help
linkerd-tcp 0.0.2
A native TCP proxy for the linkerd service mesh
USAGE:
linkerd-tcp <PATH>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
ARGS:
<PATH> Config file path.
$ ldd linkerd-tcp
linux-vdso.so.1 => (0x00007fff5d129000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd26c731000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd26c529000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd26c30b000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd26c0f5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd26bd37000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd26cfda000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd26ba3a000)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.5 LTS" |
@JustinVenus Totally -- I think build script is a better approach, since we're not intending for folks to use the centos docker image, just the binary. I'm not 100% sure how we want this repo organized (@olix0r's back on Monday and can comment), but I'd suggest creating a new |
@klingerf not sure how you all feel about Make, but I've updated this review with a Makefile and documentation in the /README.md. |
Targets Centos5+ abi compatibility. Uses same rust compiler version as the current Jessy8 based image, but uses the older libc-2.5 abi vs libc-2.19.
This could help enable a path towards binary releases in the future.