-
Notifications
You must be signed in to change notification settings - Fork 385
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
Official Docker Image with Travis CI integration #99
base: master
Are you sure you want to change the base?
Conversation
Include sys/types.h in src/hash.c, otherwise during make you can receive a undefined type error for u_int32_t
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you help me understand what this implements? I'm not familiar with docker? Does this create new dependencies?
Actually it's the other way around. This PR does a few things:
Hope this clears it up! Cheers |
We've been using Siege w/Docker at Dowjones for stress/regression tests on many of the WSJ.com properties. |
@@ -0,0 +1,10 @@ | |||
FROM frolvlad/alpine-glibc:alpine-3.5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would feel uneasy about relying on an unofficial base image.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. But the problem is that alpine uses musl libc and so we have to get some glibc package in there because otherwise siege will just segfault.
Some other potential solution is to use an official alpine image and install https://github.com/sgerrand/alpine-pkg-glibc in the dockerfile but that means we rely on that as a somewhat sketchy other thingy.
rm -rf build | ||
mkdir build | ||
|
||
docker run --rm -t -v $PWD/build:/opt/siege -v $PWD/compile.sh:/opt/compile.sh ubuntu bash /opt/compile.sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally, I like using the virtual package option of apk to install dependencies, compile, then uninstall dependencies - all in one layer. That way a single docker build
results in a light, functional image - without the need for intermediary containers as in line 6.
Adding an Alpine based Docker image with Travis CI builds
docker run --rm -t jstarcher/siege -d1 -r10 -c25 example.com