Skip to content

Instantly share code, notes, and snippets.

@brunoborges
Last active April 12, 2020 10:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save brunoborges/b9e9dd4e3e3ccaa3137b to your computer and use it in GitHub Desktop.
Save brunoborges/b9e9dd4e3e3ccaa3137b to your computer and use it in GitHub Desktop.
# Build with:
# docker build -t entrypoint .
FROM alpine
COPY verify.sh ./
RUN chmod +x verify.sh
ENTRYPOINT ["./verify.sh"]
CMD ["sh"]
# Build with
# docker build -t overridden .
FROM entrypoint
COPY overridden.sh ./
RUN chmod +x overridden.sh
ENTRYPOINT ["./overridden.sh"]
CMD ["sh"]
#!/bin/sh
echo "[overridden/overridden.sh] Overridden entrypoint. Should be OK to display this, but not without '-e VAR=ok'"
exec "$@"
#!/bin/sh
chmod +x *.sh
docker rmi -f entrypoint overridden
docker build -t entrypoint -f Dockerfile.entrypoint .
docker build -t overridden -f Dockerfile.overridden .
echo ""
echo ""
echo "Docker run 'entrypoint' without VAR=ok must fail:"
docker run --rm entrypoint
[ $? = 1 ] && echo "Test passed" || echo "Test failed."
echo ""
echo ""
echo "Docker run 'entrypoint' with VAR=ok must pass:"
docker run --rm -e VAR=ok entrypoint
[ $? = 0 ] && echo "Test passed" || echo "Test failed."
echo ""
echo ""
echo "Docker run 'overridden' without VAR=ok must fail:"
docker run --rm overridden
[ $? = 1 ] && echo "Test passed" || echo "Test failed."
echo ""
echo ""
echo "Docker run 'overridden' with VAR=ok must pass:"
docker run --rm -e VAR=ok overridden
[ $? = 0 ] && echo "Test passed" || echo "Test failed."
#!/bin/sh
echo "[entrypoint/verify.sh] Verifying variable VAR..."
if [ "$VAR" = "ok" ]; then
echo "[entrypoint/verify.sh] variable exists and it is 'ok'"
exec "$@"
else
echo '[entrypoint/verify.sh] Missing $VAR=ok'
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment