containers.sh 4.0 KB

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