initial commit

This commit is contained in:
Sebastian Hugentobler 2016-10-13 13:52:14 +02:00
commit 0d746bc19e
No known key found for this signature in database
GPG Key ID: 7BBE74D3F626FC0F
6 changed files with 73 additions and 0 deletions

2
.gitignore vendored Executable file
View File

@ -0,0 +1,2 @@
*~
.DS_Store

26
Dockerfile Normal file
View File

@ -0,0 +1,26 @@
FROM thallian/confd-env:latest
ENV PROFTP_VERSION v1.3.5b
RUN addgroup -g 2222 proftp
RUN adduser -h /var/lib/proftp -u 2222 -D -G proftp proftp
ADD /rootfs /
RUN apk add --no-cache openssl openldap tar gcc make g++ openldap-dev
RUN mkdir /tmp/proftpd
RUN wget -qO- https://github.com/proftpd/proftpd/archive/$PROFTP_VERSION.tar.gz | tar -xz -C /tmp/proftpd --strip 1
WORKDIR /tmp/proftpd
RUN ./configure --with-modules=mod_ldap
RUN patch -p1 -i /musl_mempcpy.patch
RUN make && make install
RUN rm -r /tmp/proftpd
RUN rm /musl_mempcpy.patch
WORKDIR /
RUN apk del tar gcc make g++ openldap-dev
EXPOSE 2121

View File

@ -0,0 +1,3 @@
[template]
src = "proftpd.conf.tmpl"
dest = "/usr/local/etc/proftpd.conf"

View File

@ -0,0 +1,28 @@
ServerName "{{getenv "SERVER_NAME"}}"
ServerType standalone
DefaultServer on
Port 2121
UseIPv6 off
Umask 022
MaxInstances 30
User proftp
Group proftp
DefaultRoot /var/lib/proftp/data
AllowOverwrite on
<Limit SITE_CHMOD>
DenyAll
</Limit>
<IfModule mod_ldap.c>
LDAPServer {{getenv "LDAP_URI"}}
LDAPUseTLS {{getenv "LDAP_USE_TLS"}}
LDAPAuthBinds {{getenv "LDAP_USE_AUTH_BIND"}}
LDAPBindDN "{{getenv "LDAP_BIND_DN"}}" {{getenv "LDAP_BIND_PASSWORD"}}
LDAPUsers {{getenv "LDAP_BASE"}} "{{getenv "LDAP_FILTER"}}"
LDAPSearchScope subtree
LDAPDefaultUID 2222
LDAPDefaultGID 2222
LDAPGenerateHomedir off
</IfModule>

View File

@ -0,0 +1,3 @@
#!/usr/bin/with-contenv sh
exec s6-setuidgid proftp proftpd --nodaemon

11
rootfs/musl_mempcpy.patch Normal file
View File

@ -0,0 +1,11 @@
--- a/lib/pr_fnmatch.c
+++ b/lib/pr_fnmatch.c
@@ -250,7 +250,7 @@
# endif
# define STRLEN(S) strlen (S)
# define STRCAT(D, S) strcat (D, S)
-# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
+# define MEMPCPY(D, S, N) mempcpy (D, S, N)
# define MEMCHR(S, C, N) memchr (S, C, N)
# define STRCOLL(S1, S2) strcoll (S1, S2)
# include "pr_fnmatch_loop.c"