diff --git a/pkg/docker/Dockerfile-xenial b/pkg/docker/Dockerfile-xenial index b58b1fc1..7a439ce4 100644 --- a/pkg/docker/Dockerfile-xenial +++ b/pkg/docker/Dockerfile-xenial @@ -1,6 +1,8 @@ # To use directly, run: docker build --build-arg package=.xenial.deb -t -f Dockerfile-xenial FROM ubuntu:xenial +EXPOSE 8000 + ARG version=0.0.19-1 ARG package=https://storage.googleapis.com/stackdriver-container-alpha/deb/xenial/stackdriver-metadata_${version}.xenial.deb ADD ${package} /stackdriver-metadata.deb @@ -9,7 +11,7 @@ RUN apt-get update \ && apt-get install -f -y \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /stackdriver-metadata.deb +COPY entrypoint.sh /entrypoint.sh -CMD /opt/stackdriver/metadata/sbin/metadatad - -EXPOSE 8000 +ENTRYPOINT ["/entrypoint.sh"] +CMD ["/opt/stackdriver/metadata/sbin/metadatad"] diff --git a/pkg/docker/entrypoint.sh b/pkg/docker/entrypoint.sh new file mode 100755 index 00000000..843a57f7 --- /dev/null +++ b/pkg/docker/entrypoint.sh @@ -0,0 +1,21 @@ +#!/bin/sh +set -e + +# This docker image supports sending either a flag or a command as the docker +# command. When a flag is sent, it will be passed on to the metadata agent +# process. Anything else will be interpreted as the command to be run. +# +# Passing a flag. +# $ docker run -it {image:tag} -v +# +# Passing a command. +# $ docker run -it {image:tag} /bin/bash +# +# Default behavior uses CMD defined in Dockerfile. +# $ docker run -it {image:tag} + +if [ "${1:0:1}" = '-' ]; then + set -- /opt/stackdriver/metadata/sbin/metadatad "$@" +fi + +exec "$@"