48 Commits
Author SHA1 Message Date
Bertrand Gouny 35904aa284 Merge branch 'hotfix-0.7.3' into stable 2014-06-19 13:50:48 +02:00
Bertrand Gouny 3ae806c51f retour utilisateur openldap 2014-06-18 23:03:01 +02:00
Bertrand Gouny 1e2512c998 [twgit] Init hotfix 'hotfix-0.7.3'. 2014-06-18 23:02:30 +02:00
Bertrand Gouny 9531804222 Merge branch 'hotfix-0.7.2' into stable 2014-06-18 17:29:34 +02:00
Bertrand Gouny faeb220686 pb droits 2014-06-18 17:29:25 +02:00
Bertrand Gouny 987d044727 [twgit] Init hotfix 'hotfix-0.7.2'. 2014-06-18 17:28:24 +02:00
Bertrand Gouny ba0b83ad27 Merge branch 'hotfix-0.7.1' into stable 2014-06-18 17:12:31 +02:00
Bertrand Gouny ccaf1cf6bc correction utilisateur slapd deamon 2014-06-18 17:12:22 +02:00
Bertrand Gouny e303d10740 [twgit] Init hotfix 'hotfix-0.7.1'. 2014-06-18 17:07:08 +02:00
Bertrand Gouny b4de6adb08 Merge branch 'release-0.7.0' into stable 2014-06-18 09:39:24 +02:00
Bertrand Gouny b98fb70cd4 Merge branch 'feature-new-tests' into release-0.7.0 2014-06-18 09:37:13 +02:00
Bertrand Gouny e936973e9c merge 2014-06-18 09:36:08 +02:00
Bertrand Gouny 223c040565 [twgit] Init release 'release-0.7.0'. 2014-06-18 09:32:05 +02:00
Bertrand Gouny 940c5afc4f new tests 2014-06-18 09:31:50 +02:00
Bertrand Gouny 857e692b3c news tests 2014-06-17 21:40:31 +02:00
Bertrand Gouny e7efbceae8 [twgit] Init feature 'feature-new-tests'. 2014-06-17 20:54:57 +02:00
Bertrand Gouny 87fea6c869 Merge branch 'hotfix-0.6.2' into stable 2014-06-17 09:43:26 +02:00
Bertrand Gouny c32c1683ed reorganisation code 2014-06-17 09:43:13 +02:00
Bertrand Gouny 5606ef1938 [twgit] Init hotfix 'hotfix-0.6.2'. 2014-06-17 09:28:20 +02:00
osixia 5125257293 Update README.md 2014-06-17 09:26:56 +02:00
osixia 2c6ceec151 Create LICENSE.txt 2014-06-17 09:26:42 +02:00
osixia d9f06d5579 Update README.md 2014-06-17 09:12:15 +02:00
osixia a31e2ce8bd Update README.md 2014-06-17 09:10:50 +02:00
Bertrand Gouny 676d3d736d Merge branch 'hotfix-0.6.1' into stable 2014-05-09 15:57:15 +02:00
Bertrand Gouny a413a31ed3 nouvelle baseimage + maj tests 2014-05-09 15:57:03 +02:00
Bertrand Gouny c00342523e [twgit] Init hotfix 'hotfix-0.6.1'. 2014-05-09 15:25:39 +02:00
Bertrand Gouny 08b5a758be Merge branch 'release-0.6.0' into stable 2014-05-08 17:54:43 +02:00
Bertrand Gouny 38e78710af Merge branch 'feature-new-base-image' into release-0.6.0 2014-05-08 17:54:31 +02:00
Bertrand Gouny e3588f93f2 [twgit] Init release 'release-0.6.0'. 2014-05-08 17:54:05 +02:00
Bertrand Gouny d7245df8bb osixia base 2014-05-08 17:53:41 +02:00
Bertrand Gouny 60293c62cb [twgit] Init feature 'feature-new-base-image'. 2014-05-07 23:25:52 +02:00
Bertrand Gouny 5f6a2c1530 Merge branch 'hotfix-0.5.1' into stable 2014-05-07 14:25:05 +02:00
Bertrand Gouny e54327660a hotfix 2014-05-07 14:24:55 +02:00
Bertrand Gouny b8f71b7953 [twgit] Init hotfix 'hotfix-0.5.1'. 2014-05-07 14:17:57 +02:00
osixia 14ebe80b99 Update README.md 2014-05-07 14:15:01 +02:00
Bertrand Gouny f50c6b3a97 Merge branch 'release-0.5.0' into stable 2014-05-07 14:12:34 +02:00
Bertrand Gouny 72f68af0fd Merge branch 'feature-ldapi' into release-0.5.0 2014-05-07 14:12:02 +02:00
Bertrand Gouny b9e85313b1 Merge branch 'feature-tests' into release-0.5.0 2014-05-07 14:11:48 +02:00
Bertrand Gouny bcaa13ac77 [twgit] Init release 'release-0.5.0'. 2014-05-07 14:11:29 +02:00
Bertrand Gouny 31b6c31d5e tests 2014-05-07 14:09:20 +02:00
Bertrand Gouny bd87b91d3a ldapi 2014-05-07 10:59:52 +02:00
Bertrand Gouny 4800e140cf [twgit] Init feature 'feature-ldapi'. 2014-05-07 10:57:57 +02:00
Bertrand Gouny df81b9ec7e [twgit] Init feature 'feature-tests'. 2014-05-07 10:57:33 +02:00
Bertrand Gouny ae2d4de5ec Merge branch 'release-0.4.0' into stable 2014-05-07 10:54:03 +02:00
Bertrand Gouny 9c542cafe2 Merge branch 'feature-clean' into release-0.4.0 2014-05-07 10:53:45 +02:00
Bertrand Gouny 2ceab05d59 [twgit] Init release 'release-0.4.0'. 2014-05-07 10:53:18 +02:00
Bertrand Gouny c5b29549a2 clean 2014-05-07 10:52:59 +02:00
Bertrand Gouny 2d97fce4e9 [twgit] Init feature 'feature-clean'. 2014-05-07 10:00:16 +02:00
27 changed files with 228 additions and 114 deletions

No files matched your search

+10 -5
View File
@@ -9,11 +9,16 @@ ENV LDAP_ADMIN_PWD toor
ENV LDAP_ORGANISATION Example Inc.
ENV LDAP_DOMAIN example.com
# /!\ To store the data outside the container, mount /var/lib/ldap as a data volume
# add -v /some/host/directory:/var/lib/ldap to the run command
# /!\ To store the data outside the container,
# mount /var/lib/ldap and /etc/ldap/slapd.d as a data volume add
# -v /some/host/directory:/var/lib/ldap and -v /some/other/host/directory:/etc/ldap/slapd.d
# to the run command
# Disable SSH
RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh
# RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh
# Enable dnsmasq
RUN /etc/enable-service dnsmasq
# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]
@@ -32,11 +37,11 @@ RUN mkdir /etc/ldap/ssl
# Add config directory
RUN mkdir /etc/ldap/config
ADD config /etc/ldap/config
ADD service/slapd/config /etc/ldap/config
# Add slapd deamon
RUN mkdir /etc/service/slapd
ADD slapd.sh /etc/service/slapd/run
ADD service/slapd/slapd.sh /etc/service/slapd/run
# Clear out the local repository of retrieved package files
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Osixia
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+3 -1
View File
@@ -1,4 +1,4 @@
## docker-openldap
# docker-openldap
Fork of Nick Stenning docker-slapd :
https://github.com/nickstenning/docker-slapd
@@ -23,9 +23,11 @@ and optionaly `dhparam.pem` this file is genereted automaticaly if not present.
docker run --dns=127.0.0.1 \
-v /data/ldap/db:/var/lib/ldap \
-v /data/ldap/config:/etc/ldap/slapd.d \
-v /data/ldap/ssl/:/etc/ldap/ssl \
-v /data/ldap/log/:/var/log \
-e LDAP_DOMAIN=example.com \
-e LDAP_ORGANISATION="Example Corp." \
-e LDAP_ROOTPASS=toor \
-p 389:389 -d osixia/openldap
File renamed without changes.
File renamed without changes.
+26 -18
View File
@@ -6,19 +6,17 @@ status () {
echo "---> ${@}" >&2
}
set -x
: LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
: LDAP_DOMAIN=${LDAP_DOMAIN}
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
############ Base config ############
if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
status "configuring slapd for first run"
status "configuring slapd database"
set -x
: LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
: LDAP_DOMAIN=${LDAP_DOMAIN}
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
# permission error on /etc/ldap/slapd.conf if not set?! :'(
adduser openldap root
############ Base config ############
cat <<EOF | debconf-set-selections
slapd slapd/internal/generated_adminpw password ${LDAP_ADMIN_PWD}
slapd slapd/internal/adminpw password ${LDAP_ADMIN_PWD}
@@ -37,9 +35,19 @@ EOF
dpkg-reconfigure -f noninteractive slapd
############ Custom config ############
slapd -h "ldap:/// ldapi:///" -u openldap -g openldap
chown -R openldap:openldap /etc/ldap
touch /var/lib/ldap/docker_bootstrapped
else
status "slapd database found"
fi
############ Custom config ############
if [ ! -e /etc/ldap/config/docker_bootstrapped ]; then
status "Custom config"
slapd -h "ldapi:///" -u openldap -g openldap
chown -R openldap:openldap /etc/ldap
# TLS
if [ -e /etc/ldap/ssl/ldap.crt ] && [ -e /etc/ldap/ssl/ldap.key ] && [ -e /etc/ldap/ssl/ca.crt ]; then
@@ -69,9 +77,7 @@ EOF
kill -INT `cat /run/slapd/slapd.pid`
unset LDAP_ADMIN_PWD
touch /var/lib/ldap/docker_bootstrapped
touch /etc/ldap/config/docker_bootstrapped
else
status "found already-configured slapd"
@@ -79,4 +85,6 @@ fi
status "starting slapd on default port 389"
set -x
exec /usr/sbin/slapd -h "ldap:///" -u openldap -g openldap -d -1
#with debug:
#exec /usr/sbin/slapd -h "ldap:///" -u openldap -g openldap -d -1
exec /usr/sbin/slapd -h "ldap:///" -u openldap -g openldap
+9 -42
View File
@@ -1,48 +1,15 @@
#!/bin/sh
# Tests
error=0
ok=0
# Usage
# sudo ./test.sh
# add -v for verbose mode (or type whatever you like !) :p
echo_start () {
echo "------- Start $* test -------"
}
. test/tools/run.sh
echo_error () {
echo "\n$(tput setaf 1)/!\ $* failed$(tput sgr0)\n"
error=`expr $error + 1`
}
run_test tools/build-container.sh "Successfully built"
run_test simple.sh "dn: dc=example,dc=com"
run_test tls.sh "dn: dc=example,dc=com"
run_test db.sh "dn: dc=otherdomain,dc=com"
echo_ok () {
echo "\n--> $* ok\n"
ok=`expr $ok + 1`
}
run_test () {
fction=$1
out=test/test.out
echo_start $fction
#./test/$1.sh | tee $out 2>&1
./test/$1.sh > $out 2>&1
if [ "$(grep -c "$2" $out)" -eq 0 ]; then
echo_error $fction
else
echo_ok $fction
fi
rm $out
}
./test/tools/prepare.sh
run_test build "Successfully built"
run_test run-simple "dn: dc=example,dc=com"
run_test run-tls "dn: dc=example,dc=com"
./test/tools/end.sh
echo "------- Test finished -------"
echo $error " failed " $ok " passed"
. test/tools/end.sh
-4
View File
@@ -1,4 +0,0 @@
#!/bin/sh
#sudo docker.io build -t openldap-test .
sudo docker.io build --no-cache=true -t openldap-test .
Executable
+24
View File
@@ -0,0 +1,24 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
if [ -d "$testDir" ]; then
rm -r $testDir
fi
mkdir $testDir
mkdir $testDir/db
mkdir $testDir/config
runOptions="-e LDAP_DOMAIN=otherdomain.com -v $testDir/db:/var/lib/ldap -v $testDir/config:/etc/ldap/slapd.d"
. $dir/tools/run-container.sh
$dir/tools/delete-container.sh
runOptions="-v $testDir/db:/var/lib/ldap -v $testDir/config:/etc/ldap/slapd.d"
. $dir/tools/run-container.sh
echo "ldapsearch -x -h $IP -b dc=otherdomain,dc=com"
ldapsearch -x -h $IP -b dc=otherdomain,dc=com
rm -r $testDir
$dir/tools/delete-container.sh
-7
View File
@@ -1,7 +0,0 @@
#!/bin/sh
docker.io run --name openldap-test-container -p 65389:389 -d openldap-test
sleep 5
ldapsearch -x -h localhost -p 65389 -b dc=example,dc=com
$(pwd)/test/tools/delete-container.sh
-21
View File
@@ -1,21 +0,0 @@
#!/bin/sh
docker.io run --name openldap-test-container --dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl -p 65389:389 -d openldap-test
cert=$(echo `pwd`/test/ssl/ldap.crt)
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
addLine=$(echo "127.0.0.1" $certCN)
echo $addLine >> /etc/hosts
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
sleep 5
ldapsearch -x -h $certCN -p 65389 -b dc=example,dc=com -ZZ
sed -i '/'"$addLine"'/d' /etc/hosts
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
rm /etc/ldap/ldap.conf.old
$(pwd)/test/tools/delete-container.sh
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
. $dir/tools/run-container.sh
echo "ldapsearch -x -h $IP -b dc=example,dc=com"
ldapsearch -x -h $IP -b dc=example,dc=com
$dir/tools/delete-container.sh
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
. $dir/tls/run.sh
echo "ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ"
ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ
. $dir/tls/end.sh
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
sed -i '/'"$addLine"'/d' /etc/hosts
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
rm /etc/ldap/ldap.conf.old
$dir/tools/delete-container.sh
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
runOptions="--dns=127.0.0.1 -v `pwd`/test/tls/ssl:/etc/ldap/ssl"
. $dir/tools/run-container.sh
cert=$(echo $dir/tls/ssl/ldap.crt)
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
addLine=$(echo $IP $certCN)
echo $addLine >> /etc/hosts
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
sleep 5
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
. $(dirname $0)/config.prop
docker.io build -t $testImage .
#docker.io build --no-cache=true -t $testImage .
+3
View File
@@ -0,0 +1,3 @@
testImage=openldap-test
testContainer=openldap-test-container
testDir=/osixia-test-docker-openldap
+7 -7
View File
@@ -1,11 +1,11 @@
#!/bin/sh
# remove openldap test container
docker.io ps -a > testcontainer.out
. $(dirname $0)/config.prop
if [ "$(grep -c "openldap-test-container" ./testcontainer.out)" -ne 0 ]; then
docker.io stop openldap-test-container
docker.io rm openldap-test-container
# remove test container
res=$(docker.io ps -a | grep -c "$testContainer")
if [ $res -ne 0 ]; then
docker.io stop $testContainer
docker.io rm $testContainer
fi
rm testcontainer.out
+6 -6
View File
@@ -1,10 +1,10 @@
#!/bin/sh
# remove openldap test image
docker.io images > testimage.out
. $(dirname $0)/config.prop
if [ "$(grep -c "openldap-test" ./testimage.out)" -ne 0 ]; then
docker.io rmi openldap-test
# remove test image
res=$(docker.io images | grep -c "$testImage")
if [ $res -ne 0 ]; then
#docker.io rmi $testImage
fi
rm testimage.out
+6 -2
View File
@@ -1,4 +1,8 @@
#!/bin/sh
./test/tools/delete-container.sh
./test/tools/delete-image.sh
dir=$(dirname $0)
$dir/delete-container.sh > /dev/null 2>&1
$dir/delete-image.sh > /dev/null 2>&1
echo "------- End -------"
echo $error " failed " $ok " succeeded"
+3 -1
View File
@@ -1,3 +1,5 @@
#!/bin/sh
./test/tools/delete-container.sh
dir=$(dirname $0)
$dir/delete-container.sh
$dir/delete-image.sh
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh
echo "docker.io run --name $testContainer $runOptions -d $testImage"
ID=`docker.io run --name $testContainer $runOptions -d $testImage`
sleep 7
echo " --> Obtaining IP"
IP=`docker inspect -f "{{ .NetworkSettings.IPAddress }}" $ID`
if [ "$IP" = "" ]; then
abort "Unable to obtain container IP"
exit 1
else
echo " -->" $IP
fi
+46
View File
@@ -0,0 +1,46 @@
#!/bin/sh
# Usage
# sudo ./test.sh
# add -v for verbose mode (or type whatever you like !) :p
verbose=$1
error=0
ok=0
echo_start () {
echo "------- Test: $* -------"
}
echo_error () {
echo "\n$(tput setaf 1)/!\ $* failed$(tput sgr0)\n"
error=`expr $error + 1`
}
echo_ok () {
echo "\n--> $* ok\n"
ok=`expr $ok + 1`
}
run_test () {
test=$1
out=test/test.out
echo_start $test
if [ -z ${verbose} ]; then
./test/$test > $out 2>&1
else
./test/$test | tee $out 2>&1
fi
if [ "$(grep -c "$2" $out)" -eq 0 ]; then
echo_error $test
else
echo_ok $test
fi
rm $out
}
./test/tools/prepare.sh > /dev/null 2>&1