Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Neff <benjamin@coding4coffee.ch>2022-09-21 03:45:53 +0300
committerBenjamin Neff <benjamin@coding4coffee.ch>2022-09-21 03:46:08 +0300
commit57cdc288e26c612db9626d43dcdd05075fbc8423 (patch)
treee699b770a01eddc17abfe74709c759ee39fce61a
parent19b32cf6e39d167296a27e05446b37d7a8ffcaff (diff)
parent6dd8af70f76dfd1b4acc697482793b6437706ad9 (diff)
Merge pull request #8396 from SuperTux88/fix-docker-dev
Fix docker development setup after switch to puma
-rw-r--r--docker/develop/Dockerfile2
-rw-r--r--docker/develop/docker-compose.yml11
-rwxr-xr-xdocker/develop/docker-entrypoint.sh27
-rwxr-xr-xscript/diaspora-dev70
4 files changed, 72 insertions, 38 deletions
diff --git a/docker/develop/Dockerfile b/docker/develop/Dockerfile
index 6f9db164c..3b04347c6 100644
--- a/docker/develop/Dockerfile
+++ b/docker/develop/Dockerfile
@@ -1,4 +1,4 @@
-FROM ruby:2.7-slim-bullseye
+FROM amd64/ruby:2.7-slim-bullseye
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update && \
diff --git a/docker/develop/docker-compose.yml b/docker/develop/docker-compose.yml
index b2d5e9d55..8b41d6ed7 100644
--- a/docker/develop/docker-compose.yml
+++ b/docker/develop/docker-compose.yml
@@ -1,6 +1,7 @@
version: "3.4"
volumes:
+ redis_data:
postgresql_data:
mysql_data:
dia_data_tmp:
@@ -21,8 +22,18 @@ services:
- dia_data_bundle:/diaspora/vendor/bundle
ports:
- ${DIASPORA_DOCKER_PORT:-3000}:3000
+ environment:
+ - ENVIRONMENT_REDIS=redis://redis
+ - SERVER_LISTEN=tcp://0.0.0.0:3000
depends_on:
- "${DIASPORA_DOCKER_DB}"
+ - redis
+
+ redis:
+ image: redis:7
+ command: redis-server --save 60 1 --loglevel warning
+ volumes:
+ - redis_data:/data
postgresql:
image: postgres:10.3
diff --git a/docker/develop/docker-entrypoint.sh b/docker/develop/docker-entrypoint.sh
index 19f9cdb57..a212b7f3a 100755
--- a/docker/develop/docker-entrypoint.sh
+++ b/docker/develop/docker-entrypoint.sh
@@ -18,18 +18,11 @@ chown -R $HOST_UID:$HOST_GID /home/diaspora
mkdir -p /diaspora/tmp/pids
chown $HOST_UID:$HOST_GID /diaspora/tmp /diaspora/tmp/pids /diaspora/vendor/bundle
-# ----- Wait for DB ----
-if [ -z $DIA_NODB ] || [ ! $DIA_NODB -eq 1 ]; then
- if grep -qFx " <<: *postgresql" /diaspora/config/database.yml; then
- host=postgresql
- port=5432
- else
- host=mysql
- port=3306
- fi
-
- c=0
+function wait_for_port() {
+ local host=$1
+ local port=$2
+ local c=0
trap '{ exit 1; }' INT
while ! (< /dev/tcp/${host}/${port}) 2>/dev/null; do
printf "\rWaiting for $host:$port to become ready ... ${c}s"
@@ -40,6 +33,18 @@ if [ -z $DIA_NODB ] || [ ! $DIA_NODB -eq 1 ]; then
if [ ! -z $c ]; then
printf "\rWaiting for $host:$port to become ready ... done (${c}s)\n"
fi
+}
+
+if [ -z $DIA_NODB ] || [ ! $DIA_NODB -eq 1 ]; then
+ # ----- Wait for DB -----
+ if grep -qFx " <<: *postgresql" /diaspora/config/database.yml; then
+ wait_for_port postgresql 5432
+ else
+ wait_for_port mysql 3306
+ fi
+
+ # ----- Wait for Redis -----
+ wait_for_port redis 6379
fi
cd /diaspora
diff --git a/script/diaspora-dev b/script/diaspora-dev
index 067f8c978..1c5eace04 100755
--- a/script/diaspora-dev
+++ b/script/diaspora-dev
@@ -44,6 +44,10 @@ print_usage() {
print_usage_header "clean [options]" \
" --config Delete configuration files as well"
;;
+ docker-compose)
+ echo; echo "Run docker-compose commands with the required environment variables"
+ print_usage_header "docker-compose [options]"
+ ;;
# test & development
cucumber)
echo; echo "Run cucumber tests"
@@ -136,30 +140,31 @@ print_usage_full() {
print_usage_header "$SCRIPT_NAME COMMAND"
echo
echo "Management Commands:"
- echo " setup Prepare diaspora* to run for development"
- echo " start Start diaspora*"
- echo " stop Stop diaspora*"
- echo " restart Restart of diaspora*"
- echo " logs Follow log output of diaspora*"
- echo " status Show current instance status of diaspora*"
- echo " clean Reset diaspora* instance"
+ echo " setup Prepare diaspora* to run for development"
+ echo " start Start diaspora*"
+ echo " stop Stop diaspora*"
+ echo " restart Restart of diaspora*"
+ echo " logs Follow log output of diaspora*"
+ echo " status Show current instance status of diaspora*"
+ echo " clean Reset diaspora* instance"
+ echo " docker-compose Run docker-compose commands"
echo
echo "Test and Development Commands:"
- echo " cucumber Run cucumber tests"
- echo " jasmine Run jasmine tests"
- echo " rspec Run rspec tests"
- echo " pronto Run pronto checks"
- echo " migrate Execute pending migrations"
+ echo " cucumber Run cucumber tests"
+ echo " jasmine Run jasmine tests"
+ echo " rspec Run rspec tests"
+ echo " pronto Run pronto checks"
+ echo " migrate Execute pending migrations"
echo
echo "Misc. Commands:"
- echo " build Build basic diaspora* environment"
- echo " bundle (Re-)Install gems for diaspora*"
- echo " yarn (Re-)Install frontend dependencies for diaspora*"
- echo " config Configure diaspora*"
- echo " exec Execute a command in the run environment (advanced)"
- echo " help Show help for commands"
- echo " setup-rails Prepare diaspora* development environment (install dependencies, migrate db)"
- echo " setup-tests Prepare diaspora* test environment"
+ echo " build Build basic diaspora* environment"
+ echo " bundle (Re-)Install gems for diaspora*"
+ echo " yarn (Re-)Install frontend dependencies for diaspora*"
+ echo " config Configure diaspora*"
+ echo " exec Execute a command in the run environment (advanced)"
+ echo " help Show help for commands"
+ echo " setup-rails Prepare diaspora* development environment (install dependencies, migrate db)"
+ echo " setup-tests Prepare diaspora* test environment"
echo
echo "Run '$SCRIPT_NAME help COMMAND' for more information on a command."
}
@@ -208,6 +213,11 @@ dia_is_db_running() {
dia_docker_compose ps --services --filter status=running | grep -qx $DIASPORA_DOCKER_DB
}
+dia_is_redis_running() {
+ # Check if redis container is running
+ dia_docker_compose ps --services --filter status=running | grep -qx redis
+}
+
dia_get_db() {
# Get currently configured or assumed db type
grep -q '^ <<: \*mysql' "$DIASPORA_CONFIG_DB" 2>/dev/null && echo mysql || echo postgresql
@@ -324,13 +334,14 @@ dia_exec() {
# Use a running container
dia_docker_compose exec $detach diaspora /exec-entrypoint.sh "$@"
else
- if ! dia_is_db_running; then not_running=1; fi
+ # stop db/redis if it was not running before
+ if ! dia_is_db_running; then stopdb="dia_docker_compose stop $DIASPORA_DOCKER_DB"; fi
+ if ! dia_is_redis_running; then stopredis="dia_docker_compose stop redis"; fi
# Start a new container
echo "No running instance found, starting new one for command execution ..."
dia_docker_compose run --rm $detach --service-ports diaspora "$@"
- if [ ! -z $not_running ]; then
- dia_docker_compose stop $DIASPORA_DOCKER_DB
- fi
+ $stopdb
+ $stopredis
fi
}
@@ -449,24 +460,28 @@ dia_setup() {
dia_setup_rails() {
# Prepare rails, install dependencies, migrate database, ...
- # stop db if it was not running before
echo "Setting up environment for tests ..."
+ # stop db/redis if it was not running before
if ! dia_is_db_running; then stopdb="dia_docker_compose stop $DIASPORA_DOCKER_DB"; fi
+ if ! dia_is_redis_running; then stopredis="dia_docker_compose stop redis"; fi
dia_docker_compose run --rm diaspora bin/setup
$stopdb
+ $stopredis
}
dia_setup_tests() {
# Prepare all possible tests
- # stop db if it was not running before
echo "Setting up environment for tests ..."
+ # stop db/redis if it was not running before
if ! dia_is_db_running; then stopdb="dia_docker_compose stop $DIASPORA_DOCKER_DB"; fi
+ if ! dia_is_redis_running; then stopredis="dia_docker_compose stop redis"; fi
dia_docker_compose run \
--rm \
-e RAILS_ENV=test \
diaspora \
bin/rake db:create db:migrate tests:generate_fixtures assets:generate_error_pages
$stopdb
+ $stopredis
}
dia_start() {
@@ -546,6 +561,9 @@ case "$dia_command" in
cucumber)
dia_cucumber "$@"
;;
+ docker-compose)
+ dia_docker_compose "$@"
+ ;;
exec)
dia_exec "$@"
;;