From 557831fa0d863ed3b5b2af6f5d06b59a2d42138a Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Mon, 7 Oct 2019 19:16:52 +0200 Subject: [PATCH] Dockerfiles: add support for web interface --- docker/sftpgo/alpine/Dockerfile | 4 +++- docker/sftpgo/alpine/README.md | 2 ++ docker/sftpgo/alpine/sftpgo.service | 2 ++ docker/sftpgo/debian/Dockerfile | 8 +++++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docker/sftpgo/alpine/Dockerfile b/docker/sftpgo/alpine/Dockerfile index 8745428c..8b89a9dc 100644 --- a/docker/sftpgo/alpine/Dockerfile +++ b/docker/sftpgo/alpine/Dockerfile @@ -10,10 +10,12 @@ RUN go build -i -ldflags "-s -w -X github.com/drakkan/sftpgo/utils.commit=`git d FROM alpine:latest RUN apk add --no-cache ca-certificates su-exec \ - && mkdir -p /data /etc/sftpgo /srv/sftpgo/config + && mkdir -p /data /etc/sftpgo /srv/sftpgo/config /srv/sftpgo/web COPY --from=builder /go/bin/sftpgo /bin/ COPY --from=builder /go/src/github.com/drakkan/sftpgo/sftpgo.json /etc/sftpgo/sftpgo.json +COPY --from=builder /go/src/github.com/drakkan/sftpgo/templates /srv/sftpgo/web/templates +COPY --from=builder /go/src/github.com/drakkan/sftpgo/static /srv/sftpgo/web/static COPY docker-entrypoint.sh /bin/entrypoint.sh RUN chmod +x /bin/entrypoint.sh diff --git a/docker/sftpgo/alpine/README.md b/docker/sftpgo/alpine/README.md index a07dd4a3..8127453e 100644 --- a/docker/sftpgo/alpine/README.md +++ b/docker/sftpgo/alpine/README.md @@ -21,6 +21,8 @@ git clone https://github.com/drakkan/sftpgo.git && \ sudo docker run --name sftpgo \ -e SFTPGO_LOG_FILE_PATH= \ -e SFTPGO_CONFIG_DIR=/srv/sftpgo/config \ + -e SFTPGO_HTTPD__TEMPLATES_PATH=/srv/sftpgo/web/templates \ + -e SFTPGO_HTTPD__STATIC_FILES_PATH=/srv/sftpgo/web/static \ -p 8080:8080 \ -p 2022:2022 \ -e PUID=1003 \ diff --git a/docker/sftpgo/alpine/sftpgo.service b/docker/sftpgo/alpine/sftpgo.service index d70de15f..0562b24a 100644 --- a/docker/sftpgo/alpine/sftpgo.service +++ b/docker/sftpgo/alpine/sftpgo.service @@ -15,6 +15,8 @@ ExecStart=docker run --name sftpgo \ --env-file sftpgo-${PUID}.env \ -e PUID=${PUID} \ -e GUID=${GUID} \ + -e SFTPGO_HTTPD__TEMPLATES_PATH=/srv/sftpgo/web/templates \ + -e SFTPGO_HTTPD__STATIC_FILES_PATH=/srv/sftpgo/web/static \ -p 8080:8080 \ -p 2022:2022 \ -v /home/sftpuser/conf/:/srv/sftpgo/config \ diff --git a/docker/sftpgo/debian/Dockerfile b/docker/sftpgo/debian/Dockerfile index 194f971a..a48a0381 100644 --- a/docker/sftpgo/debian/Dockerfile +++ b/docker/sftpgo/debian/Dockerfile @@ -17,6 +17,7 @@ ARG USERNAME=sftpgo ARG GROUPNAME=sftpgo ARG UID=515 ARG GID=515 +ARG WEB_REL_PATH=web # HOME_DIR for sftpgo itself ENV HOME_DIR=${BASE_DIR}/${USERNAME} @@ -24,8 +25,9 @@ ENV HOME_DIR=${BASE_DIR}/${USERNAME} ENV DATA_DIR=${BASE_DIR}/${DATA_REL_DIR} # CONFIG_DIR, this is a volume to persist the daemon private keys, configuration file ecc.. ENV CONFIG_DIR=${BASE_DIR}/${CONFIG_REL_DIR} +ENV WEB_DIR=${BASE_DIR}/${WEB_REL_PATH} -RUN mkdir -p ${DATA_DIR} ${CONFIG_DIR} +RUN mkdir -p ${DATA_DIR} ${CONFIG_DIR} ${WEB_DIR} RUN groupadd --system -g ${GID} ${GROUPNAME} RUN useradd --system --create-home --no-log-init --home-dir ${HOME_DIR} --comment "SFTPGo user" --shell /bin/false --gid ${GID} --uid ${UID} ${USERNAME} @@ -36,6 +38,8 @@ COPY --from=buildenv /go/src/github.com/drakkan/sftpgo/sftpgo bin/sftpgo # default config file to use if no config file is found inside the CONFIG_DIR volume. # You can override each configuration options via env vars too COPY --from=buildenv /go/src/github.com/drakkan/sftpgo/sftpgo.json .config/sftpgo/ +COPY --from=buildenv /go/src/github.com/drakkan/sftpgo/templates ${WEB_DIR}/templates +COPY --from=buildenv /go/src/github.com/drakkan/sftpgo/static ${WEB_DIR}/static RUN chown -R ${UID}:${GID} ${DATA_DIR} # run as non root user @@ -51,6 +55,8 @@ ENV SFTPGO_CONFIG_DIR=${CONFIG_DIR} # setting SFTPGO_LOG_FILE_PATH to an empty string will log to stdout ENV SFTPGO_LOG_FILE_PATH=${CONFIG_DIR}/sftpgo.log ENV SFTPGO_HTTPD__BIND_ADDRESS="" +ENV SFTPGO_HTTPD__TEMPLATES_PATH=${WEB_DIR}/templates +ENV SFTPGO_HTTPD__STATIC_FILES_PATH=${WEB_DIR}/static ENV SFTPGO_DATA_PROVIDER__USERS_BASE_DIR=${DATA_DIR} ENTRYPOINT ["sftpgo"]