X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4c3860e66b4a4f8108de793ddcfb66b8b5b182aa..c9aeff6bf913e3a189940f7e94b6eb789318fb2c:/sdk/pam/Dockerfile diff --git a/sdk/pam/Dockerfile b/sdk/pam/Dockerfile index 76b08b9a60..5cee5cc754 100644 --- a/sdk/pam/Dockerfile +++ b/sdk/pam/Dockerfile @@ -1,10 +1,23 @@ +# These tests assume you have a real API server running on the docker host. +# +# Build the test container: +# First, replace 3000 below with your api server's port number if necessary. +# host$ python setup.py sdist rotate --keep=1 --match .tar.gz +# host$ docker build --tag=arvados/pam_test . +# +# Automated integration test: +# host$ docker run -it --add-host zzzzz.arvadosapi.com:"$(hostname -I |awk '{print $1}')" arvados/pam_test +# You should see "=== OK ===", followed by a Perl stack trace due to a +# yet-unidentified pam_python.so bug. +# # Manual integration test: -# 0. python setup.py sdist rotate --keep=1 --match .tar.gz -# 1. replace 53015 below with your api server's port number -# 2. docker build -name arvados:pam_test . -# 3. docker run -it --add-host zzzzz.arvadosapi.com:"$(hostname -I |awk '{print $1}')" arvados:pam_test -# 4. container# useradd testusername -# 5. container# login # enter username and token +# host$ docker run -it --add-host zzzzz.arvadosapi.com:"$(hostname -I |awk '{print $1}')" arvados/pam_test bash -c 'rsyslogd & tail -F /var/log/auth.log & sleep 1 & bash' +# container# login +# login: active +# Arvados API token: 3kg6k6lzmp9kj5cpkcoxie963cmvjahbt2fod9zru30k1jqdmi +# You should now be logged in to the "active" shell account in the +# container. You should also see arvados_pam log entries in +# /var/log/auth.log (and in your terminal, thanks to "tail -F"). FROM debian:wheezy RUN apt-get update @@ -22,7 +35,7 @@ ADD dist /dist RUN pip install /dist/arvados-pam-*.tar.gz # Configure and enable the module (hopefully vendor packages will offer a neater way) -RUN perl -pi -e 's{api.example}{zzzzz.arvadosapi.com:53015}; s{shell\.example}{testvm2.shell insecure};' /usr/share/pam-configs/arvados +RUN perl -pi -e 's{api.example}{zzzzz.arvadosapi.com:3000}; s{shell\.example}{testvm2.shell insecure};' /usr/share/pam-configs/arvados RUN DEBIAN_FRONTEND=noninteractive pam-auth-update arvados --remove unix # Add a user account matching the fixture @@ -31,7 +44,7 @@ RUN useradd -ms /bin/bash active # Test with python (SIGSEGV during tests) #ADD . /pam #WORKDIR /pam -#CMD rsyslogd & tail -F /var/log/auth.log & python setup.py test +#CMD rsyslogd & tail -F /var/log/auth.log & python setup.py test --test-suite integration_tests # Test with perl (SIGSEGV when program exits) RUN apt-get install -qy libauthen-pam-perl