This is an automated email from the git hooks/post-receive script.
firstyear pushed a change to branch master in repository 389-ds-base.
from 1b5a578 Issue 47662 - CLI args get removed new 01561a1 Ticket 49207 - Supply docker POC build for DS.
The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference.
Summary of changes: docker/389ds_poc/Dockerfile | 50 +++++++++++++++++++++++++++++++++++++ docker/README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 docker/389ds_poc/Dockerfile create mode 100644 docker/README.md
This is an automated email from the git hooks/post-receive script.
firstyear pushed a commit to branch master in repository 389-ds-base.
commit 01561a10cf22059bd582306ad3f2cac289e2413e Author: William Brown firstyear@redhat.com Date: Mon Apr 3 14:17:16 2017 +1000
Ticket 49207 - Supply docker POC build for DS.
Fix Description: Supply a proof of concept docker build file for 389 Directory Server. This container will contain a single instance of directory server with no backends. It should be administered with dsconf / ldif.
https://pagure.io/389-ds-base/issue/49207
Author: wibrown
Review by: nhosoi, lslebodn (thanks!) --- docker/389ds_poc/Dockerfile | 50 +++++++++++++++++++++++++++++++++++++ docker/README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+)
diff --git a/docker/389ds_poc/Dockerfile b/docker/389ds_poc/Dockerfile new file mode 100644 index 0000000..6e9ebf4 --- /dev/null +++ b/docker/389ds_poc/Dockerfile @@ -0,0 +1,50 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2017 Red Hat, Inc. +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- + +FROM centos:7 +MAINTAINER 389-devel@lists.fedoraproject.org +EXPOSE 389 636 +ENV container docker +ARG lib389repository=https://pagure.io/lib389.git +ARG dsrepository=https://pagure.io/389-ds-base.git +ARG lib389branch=master +ARG dsbranch=master + +RUN mkdir -p /usr/local/src +WORKDIR /usr/local/src + +RUN yum upgrade -y && \ + yum install -y @buildsys-build rpm-build make epel-release bzip2 git && \ + yum clean all + +RUN git clone --depth=1 --branch=$lib389branch $lib389repository lib389 && \ + git clone --depth=1 --branch=$dsbranch $dsrepository 389-ds-base + +RUN yum install -y --skip-broken `grep -E "^(Build)?Requires" 389-ds-base/rpm/389-ds-base.spec.in lib389/python-lib389.spec | grep -v -E '(name|MODULE)' | awk '{ print $2 }' | grep -v "^/" | grep -v pkgversion | sort | uniq| tr '\n' ' '` && \ + yum clean all + +RUN make -C lib389/ rpm + +RUN cd 389-ds-base && make -f rpm.mk rpms + +RUN yum install -y 389-ds-base/dist/rpms/389*.rpm lib389/rpmbuild/RPMS/noarch/*lib389* && \ + yum clean all + +# Create the example setup inf. It's valid for containers! +# Build the instance from the new installer tools. +RUN /usr/sbin/dscreate example > /root/ds-setup.inf && /usr/sbin/dscreate -v fromfile /root/ds-setup.inf --IsolemnlyswearthatIamuptonogood --containerised + +# Finally add the volumes, they will inherit the contents of these directories. +VOLUME /etc/dirsrv +VOLUME /var/log/dirsrv +VOLUME /var/lib/dirsrv + +# Or, run them as dirsrv +USER dirsrv +CMD ["/usr/sbin/ns-slapd", "-d", "0", "-D", "/etc/dirsrv/slapd-localhost", "-i", "/var/run/dirsrv/slapd-localhost.pid"] + diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..70adf2b --- /dev/null +++ b/docker/README.md @@ -0,0 +1,61 @@ + +#### Issue Description +This folder contains proof of concept dockerfiles for 389 Directory Server. This utilises many of our latest +developments for installing instances and configuring them. We have developed native, clean, and powerful container +integration. This container image is usable on CentOS / RHEL / Fedora atomic host, and pure docker implementations. +Please note this image will not currently work in openshift due to a reliance on volume features that openshift does +not support, but we will correct this. + + +#### Using the files +These docker files are designed to be build from docker hub as the will do a remote git fetch during the build process. +They are not currently designed to operate on a local source tree (we may add this later). + +``` +cd docker/389ds_poc; +docker build -t 389ds_poc:latest . +``` + +#### Deploying and using the final product + +``` +docker create -h ldap.example.com 389ds_poc:latest +docker start <name> +docker inspect <name> | grep IPAddress +ldapsearch -H ldap://<address> -b '' -s base -x + +.... +supportedLDAPVersion: 3 +vendorName: 389 Project +vendorVersion: 389-Directory/1.3.6.3 B2017.093.354 + +``` + +To expose the ports you may consider adding: + +``` +-P +OR +-p 127.0.0.1:$HOSTPORT:$CONTAINERPORT +``` + +You can not currently use a persistent volume with the 389ds_poc image due to an issue with docker volumes. This will be +corrected by https://pagure.io/389-ds-base/issue/49213 + +#### Warnings + +The 389ds_poc container is supplied with a static Directory Manager password. This is HIGHLY INSECURE and should not be +used in production. The password is "directory manager password". + +The 389ds_poc container has some issues with volume over-rides due to our use of a pre-built instance. We are working to +resolve this, but until a solution is derived, you can not override the datavolumes. + +#### Other ideas + +* We could develop a dockerfile that builds and runs DS tests in an isolated environment. +* Make a container image that allows mounting an arbitrary 389-ds repo into it for simple development purposes. + +#### NOTE of 389 DS project support + +This is not a "supported" method of deployment to a production system and may result in data loss. This should be +considered an experimental deployment method until otherwise announced. +
389-commits@lists.fedoraproject.org