|
| 1 | + |
| 2 | +ARG ALPINE_VERSION=3.5 |
| 3 | + |
| 4 | +FROM alpine:$ALPINE_VERSION |
| 5 | + |
| 6 | +LABEL maintainer= "binave <[email protected]>" |
| 7 | + |
| 8 | +ARG NETCAT_URL=https://github.com/mfreiholz/iF.SVNAdmin/archive/stable-1.6.2.tar.gz |
| 9 | +ARG REPO_MIRRORS_HOST=dl-cdn.alpinelinux.org |
| 10 | + |
| 11 | +ARG SRV_URI_PREFIX=svnadmin |
| 12 | +ARG SVN_DATA_DIR=/svn |
| 13 | + |
| 14 | +RUN export SVN_PARENT_PATH=$SVN_DATA_DIR/repositories \ |
| 15 | + SVN_PASSWORD_FILE=$SVN_DATA_DIR/conf/passwd \ |
| 16 | + SVN_ACCESS_FILE=$SVN_DATA_DIR/conf/authz; \ |
| 17 | + sed -i 's@^root::@root:!:@' /etc/shadow; \ |
| 18 | + sed -i "[email protected]@$REPO_MIRRORS_HOST@g" /etc/apk/repositories; \ |
| 19 | + apk update --no-cache || exit 1; \ |
| 20 | +: \ |
| 21 | +: iF.SVNAdmin \ |
| 22 | +; \ |
| 23 | + apk add --no-cache --virtual .download curl tar && \ |
| 24 | + mkdir -pv /opt/$SRV_URI_PREFIX && cd /opt/$SRV_URI_PREFIX && \ |
| 25 | + curl $NETCAT_URL | tar -xzf - --strip=1 || exit 1; \ |
| 26 | + apk del .download && \ |
| 27 | + awk '!/^[#;]|^$/{if($1 ~ /^\[/){print "\n" $_} else print};END{print "\n"}' data/config.tpl.ini | \ |
| 28 | + sed "s@^SVNAuthFile=@&$SVN_ACCESS_FILE@; \ |
| 29 | + s@^SVNParentPath=@&$SVN_PARENT_PATH@; \ |
| 30 | + s@^SvnExecutable=@&/usr/bin/svn@; \ |
| 31 | + s@^SvnAdminExecutable=@&/usr/bin/svnadmin@; \ |
| 32 | + s@^SVNUserFile=@&$SVN_PASSWORD_FILE@" > data/config.ini; \ |
| 33 | +: \ |
| 34 | +: Fix: https://github.com/mfreiholz/iF.SVNAdmin/issues/118 \ |
| 35 | +; \ |
| 36 | + sed -i ':1;N;$!b1;s@{.*return $check@{\n return version_compare(PHP_VERSION, $minimumVersion)@' \ |
| 37 | + /opt/$SRV_URI_PREFIX/classes/util/global.func.php || exit 1; \ |
| 38 | +: \ |
| 39 | +: install apk \ |
| 40 | +; \ |
| 41 | + apk add --no-cache apache2 apache2-utils apache2-webdav mod_dav_svn && \ |
| 42 | + apk add --no-cache subversion php7 php7-apache2 php7-session php7-json php7-ldap php7-xml || exit 1; \ |
| 43 | + sed -i -e 's@^;\(extension=.*ldap\)@\1@' /etc/php7/php.ini && \ |
| 44 | + mkdir -pv /run/apache2/ && cd /run/apache2/ && \ |
| 45 | + printf "%s\n" \ |
| 46 | +H4sIAAAAAAAAA+3UW2/TMBQA4D77VxwGYhJSmt4jyKgU1hYmlbZKuvHQTpWbuEtEGgfbCdq0H4/T \ |
| 47 | +0DCYoE/lIs734vj4+NI6J2vOlVSCpnUZ1o6koVmWtWu1H9tGt2PVmh390Oo0u0W82Wq2OjVoHOtA \ |
| 48 | +D2VSUQFQE/qP+FXeofF/1NMn5jpKTBkSsv0YRAKMNIdn3tVkNXPc4WSum/m7MjBw5s5qcOGaPk82 \ |
| 49 | +NlE888N9qud9mLqD1ehiPLTJAgxZDjjn50PP24XhGu7vYUlAS0WUqA2cLm4Ez1J5vUyWycLUzQt4 \ |
| 50 | +DaLonUL/0Qo28UP+OQHDBZpSP2Svyub704GZU2HG/MYsR1s2ITJPJBM5A8MIKNtyvYax4YIV2yeB \ |
| 51 | +7hSX+/hXG0YcScUSI+VCQbv3sgHPidiCsQFTZMl+AzNUKg3qaRTYpAz5KgZjMJq6w7fu9HIysMmf \ |
| 52 | +vuafktk6Z0JGPKkX13qUPQ7Wf6Nda7Z1htXtdNtWUf+9XgPr/3cYcxq850EWMwhovtKVstqWXTOT \ |
| 53 | +uo6idfWa6/jqa05dcvJgJs1UeHdwbpVVzCZnY+5Tpd87MHWov/suDJwr0J3dsy7GGRUsUTOqwn1k \ |
| 54 | +rOvxWxSmZaqjF57fpgzeUBn5VWhCtwxOvOoFB5elXEaKi9uTKulSfxhGUcyqwJ3exvF9JmUVdtmn \ |
| 55 | +LBIMchpHgZHpGeTM3B+///fWNkIIIYQQQgghhBBCCCGEEEIIIYT+D18AH/jsdwAoAAA= \ |
| 56 | +| base64 -d | tar -xzvf - || exit 1; \ |
| 57 | + sed -i "s@SVNParentPath@& $SVN_PARENT_PATH@; \ |
| 58 | + s@AuthUserFile@& $SVN_PASSWORD_FILE@; \ |
| 59 | + s@AuthzSVNAccessFile@& $SVN_ACCESS_FILE@" subversion.conf && \ |
| 60 | + mv -v subversion.conf /etc/apache2/conf.d/ && \ |
| 61 | + sed -i "s@\$SVN_DATA_DIR@$SVN_DATA_DIR@g; \ |
| 62 | + s@\$SVN_PARENT_PATH@$SVN_PARENT_PATH@; \ |
| 63 | + s@\$SVN_PASSWORD_FILE@$SVN_PASSWORD_FILE@; \ |
| 64 | + s@\$SVN_ACCESS_FILE@$SVN_ACCESS_FILE@;" bootstrap.sh && \ |
| 65 | + chmod +x bootstrap.sh && \ |
| 66 | + ln -sv /opt/$SRV_URI_PREFIX /var/www/localhost/htdocs/$SRV_URI_PREFIX && \ |
| 67 | + chown -R apache:apache /opt/$SRV_URI_PREFIX/data; \ |
| 68 | +: \ |
| 69 | +: timezone \ |
| 70 | +; \ |
| 71 | + apk add --no-cache --virtual .tz tzdata || exit 1; \ |
| 72 | + cp -fv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime || exit 1; \ |
| 73 | + echo "Asia/Shanghai" > /etc/timezone && \ |
| 74 | + apk del .tz |
| 75 | + |
| 76 | +ENV HOME /home |
| 77 | + |
| 78 | +EXPOSE 80 443 3690 |
| 79 | + |
| 80 | +VOLUME ["/var/log/apache2"] |
| 81 | + |
| 82 | +ENTRYPOINT ["/run/apache2/bootstrap.sh"] |
0 commit comments