containers.sh 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. mastodon_service_dockerbunker() {
  2. docker run -d --user mastodon \
  3. --name=${FUNCNAME[0]//_/-} \
  4. --restart=always \
  5. --health-cmd="wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:3000/api/v1/instance || exit 1" \
  6. --health-interval=30s \
  7. --network ${NETWORK} \
  8. --network dockerbunker-${SERVICE_NAME} \
  9. --env RUN_DB_MIGRATIONS=true --env UID=991 --env GID=991 --env WEB_CONCURRENCY=16 --env MAX_THREADS=20 --env SIDEKIQ_WORKERS=25 \
  10. --env-file "${SERVICE_ENV}" \
  11. -v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
  12. -v ${SERVICE_NAME}-data-vol-2:${volumes[${SERVICE_NAME}-data-vol-2]} \
  13. -v ${SERVICE_NAME}-data-vol-3:${volumes[${SERVICE_NAME}-data-vol-3]} \
  14. ${IMAGES[service]} bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000 -b '0.0.0.0'" >/dev/null
  15. }
  16. mastodon_streaming_dockerbunker() {
  17. docker run -d --user mastodon \
  18. --name=${FUNCNAME[0]//_/-} \
  19. --restart=always \
  20. --health-cmd="wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:4000/api/v1/streaming/health || exit 1" \
  21. --health-interval=30s \
  22. --network ${NETWORK} \
  23. --network dockerbunker-${SERVICE_NAME} \
  24. --env RUN_DB_MIGRATIONS=true --env UID=991 --env GID=991 --env WEB_CONCURRENCY=16 --env MAX_THREADS=20 --env SIDEKIQ_WORKERS=25 \
  25. --env-file "${SERVICE_ENV}" \
  26. ${IMAGES[service]}${GLITCH} yarn start >/dev/null
  27. }
  28. mastodon_sidekiq_dockerbunker() {
  29. docker run -d --user mastodon \
  30. --name=${FUNCNAME[0]//_/-} \
  31. --restart=always \
  32. --network dockerbunker-${SERVICE_NAME} --net-alias=sidekiq \
  33. --env RUN_DB_MIGRATIONS=true --env UID=991 --env GID=991 --env WEB_CONCURRENCY=16 --env MAX_THREADS=20 --env SIDEKIQ_WORKERS=25 \
  34. --env-file "${SERVICE_ENV}" \
  35. -v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
  36. -v ${SERVICE_NAME}-data-vol-2:${volumes[${SERVICE_NAME}-data-vol-2]} \
  37. ${IMAGES[service]}${GLITCH} bundle exec sidekiq >/dev/null
  38. }
  39. mastodon_redis_dockerbunker() {
  40. docker run -d --user redis \
  41. --name ${FUNCNAME[0]//_/-} \
  42. --network dockerbunker-${SERVICE_NAME} --net-alias redis \
  43. -v ${SERVICE_NAME}-redis-vol-1:${volumes[${SERVICE_NAME}-redis-vol-1]} \
  44. ${IMAGES[redis]} >/dev/null
  45. }
  46. mastodon_elasticsearch_dockerbunker() {
  47. docker run -d --user elasticsearch \
  48. --name=${FUNCNAME[0]//_/-} \
  49. --restart=unless-stopped \
  50. --network dockerbunker-${SERVICE_NAME} --net-alias=es \
  51. --env ES_JAVA_OPTS="-Xms512m -Xmx512m" \
  52. -v ${SERVICE_NAME}-elasticsearch-vol-1:${volumes[${SERVICE_NAME}-elasticsearch-vol-1]} \
  53. ${IMAGES[elasticsearch]} >/dev/null
  54. }
  55. mastodon_postgres_dockerbunker() {
  56. docker run -d --user postgres \
  57. --name=${FUNCNAME[0]//_/-} \
  58. --restart=unless-stopped \
  59. --network dockerbunker-${SERVICE_NAME} --net-alias=postgres \
  60. -v mastodon-postgres-vol-1:/var/lib/postgresql/data \
  61. ${IMAGES[postgres]} >/dev/null
  62. }
  63. mastodon_generatevapidkeys_dockerbunker() {
  64. echo -en "\n\e[1mGenerating VAPID keys\e[0m"
  65. docker run -it --rm \
  66. --name=${SERVICE_NAME}-vapidgen-dockerbunker \
  67. --env-file "${SERVICE_ENV}" \
  68. ${IMAGES[service]}${GLITCH} rake mastodon:webpush:generate_vapid_key | grep VAPID > "${ENV_DIR}"/${SERVICE_NAME}_tmp.env
  69. exit_response
  70. }
  71. mastodon_dbmigrateandprecompileassets_dockerbunker() {
  72. echo -en "\n\e[1mCreating DB and precompiling assets\e[0m"
  73. docker run -it --rm \
  74. --name=${SERVICE_NAME}-dbsetup-dockerbunker \
  75. --network dockerbunker-${SERVICE_NAME} \
  76. --env-file "${SERVICE_ENV}" \
  77. -v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
  78. -v ${SERVICE_NAME}-data-vol-2:${volumes[${SERVICE_NAME}-data-vol-2]} \
  79. -v ${SERVICE_NAME}-data-vol-3:${volumes[${SERVICE_NAME}-data-vol-3]} \
  80. ${IMAGES[service]}${GLITCH} bash -c "rake db:migrate && rake assets:precompile" >/dev/null
  81. exit_response
  82. }
  83. mastodon_makeadmin_dockerbunker() {
  84. echo -en "\n\e[1mMaking ${1} admin...\e[0m"
  85. docker run -it --rm \
  86. --name=${FUNCNAME[0]//_/-} \
  87. --network dockerbunker-${SERVICE_NAME} \
  88. --env-file "${SERVICE_ENV}" \
  89. -v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
  90. -v ${SERVICE_NAME}-data-vol-2:${volumes[${SERVICE_NAME}-data-vol-2]} \
  91. -v ${SERVICE_NAME}-data-vol-3:${volumes[${SERVICE_NAME}-data-vol-3]} \
  92. ${IMAGES[service]} bash -c "RAILS_ENV=production bin/tootctl accounts modify ${1} --role admin" >/dev/null
  93. exit_response
  94. }