entrypoint.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env bash
  2. SFTPGO_PUID=${SFTPGO_PUID:-1000}
  3. SFTPGO_PGID=${SFTPGO_PGID:-1000}
  4. if [ "$1" = 'sftpgo' ]; then
  5. if [ "$(id -u)" = '0' ]; then
  6. getent passwd ${SFTPGO_PUID} > /dev/null
  7. HAS_PUID=$?
  8. getent group ${SFTPGO_PGID} > /dev/null
  9. HAS_PGID=$?
  10. if [ ${HAS_PUID} -ne 0 ] || [ ${HAS_PGID} -ne 0 ]; then
  11. echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"prepare to run as UID: '${SFTPGO_PUID}' GID: '${SFTPGO_PGID}'"}'
  12. if [ ${HAS_PGID} -ne 0 ]; then
  13. echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"set GID to: '${SFTPGO_PGID}'"}'
  14. groupmod -g ${SFTPGO_PGID} sftpgo
  15. fi
  16. if [ ${HAS_PUID} -ne 0 ]; then
  17. echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"set UID to: '${SFTPGO_PUID}'"}'
  18. usermod -u ${SFTPGO_PUID} sftpgo
  19. fi
  20. chown -R ${SFTPGO_PUID}:${SFTPGO_PGID} /etc/sftpgo
  21. chown ${SFTPGO_PUID}:${SFTPGO_PGID} /var/lib/sftpgo /srv/sftpgo
  22. fi
  23. echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"run as UID: '${SFTPGO_PUID}' GID: '${SFTPGO_PGID}'"}'
  24. exec gosu ${SFTPGO_PUID}:${SFTPGO_PGID} "$@"
  25. fi
  26. exec "$@"
  27. fi
  28. exec "$@"