start.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/sh
  2. # directory setup
  3. mkdir -p /data/ssh
  4. mkdir -p /data/gogs/log
  5. mkdir -p /data/gogs/data
  6. #SSH setup
  7. # Check if host keys are present, else create them
  8. if ! test -f /data/ssh/ssh_host_rsa_key; then
  9. ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa
  10. fi
  11. if ! test -f /data/ssh/ssh_host_dsa_key; then
  12. ssh-keygen -q -f /data/ssh/ssh_host_dsa_key -N '' -t dsa
  13. fi
  14. if ! test -f /data/ssh/ssh_host_ecdsa_key; then
  15. ssh-keygen -q -f /data/ssh/ssh_host_ecdsa_key -N '' -t ecdsa
  16. fi
  17. if ! test -f /data/ssh/ssh_host_ed25519_key; then
  18. ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519
  19. fi
  20. if ! test -d ~git/.ssh; then
  21. mkdir -p ~git/.ssh
  22. chmod 700 ~git/.ssh
  23. fi
  24. #Gogs setup
  25. if ! test -f ~git/.ssh/environment; then
  26. echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment
  27. chmod 600 ~git/.ssh/environment
  28. fi
  29. cd /app/gogs
  30. # check authorized keys
  31. if ! test -f /data/git/.ssh/authorized_keys; then
  32. echo "" > /data/git/.ssh/authorized_keys
  33. fi
  34. # check authorized keys
  35. if ! test -d /data/.ssh; then
  36. mkdir -p /data/.ssh
  37. fi
  38. # Link volumed data with app data
  39. ln -sf /data/gogs/log ./log
  40. ln -sf /data/gogs/data ./data
  41. ln -s /data/git/.ssh/authorized_keys /data/.ssh/authorized_keys
  42. # Backward Compatibility with Gogs Container v0.6.15
  43. ln -sf /data/git /home/git
  44. chown -R git:git /data /app/gogs ~git/
  45. chmod 0755 /data /data/gogs ~git/
  46. # Set correct right to ssh keys
  47. chown -R root:root /data/ssh/*
  48. chmod 0700 /data/ssh
  49. chmod 0600 /data/ssh/*
  50. # Exec CMD or S6 by default if nothing present
  51. supervisord -c /app/gogs/docker/supervisord.conf