瀏覽代碼

fix sqlite in alpine

Stefan S 11 月之前
父節點
當前提交
6406d06a33
共有 3 個文件被更改,包括 47 次插入9 次删除
  1. 2 0
      Dockerfile.alpine
  2. 21 9
      docker/entrypoint.sh
  3. 24 0
      docker/test/docker-compose.yml

+ 2 - 0
Dockerfile.alpine

@@ -54,6 +54,8 @@ ENV WEBPORT=8080
 # https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop
 STOPSIGNAL SIGWINCH
 
+WORKDIR /var/www/html
+
 # Final touches
 EXPOSE ${WEBPORT}
 CMD ["bash", "/entrypoint.sh"]

+ 21 - 9
docker/entrypoint.sh

@@ -3,6 +3,10 @@
 set -e
 set -x
 
+is_alpine() {
+  [ -f /etc/alpine-release ]
+}
+
 # Cleanup
 rm -rf /var/www/html/*
 
@@ -13,7 +17,7 @@ cp /speedtest/*.js /var/www/html/
 cp /speedtest/favicon.ico /var/www/html/
 
 # Set custom webroot on alpine
-if [ -f /etc/alpine-release ]; then
+if is_alpine; then
   sed -i "s#\"/var/www/localhost/htdocs\"#\"/var/www/html\"#g" /etc/apache2/httpd.conf
 fi
 
@@ -38,7 +42,7 @@ if [ "$MODE" != "backend" ]; then
 fi
 
 # Apply Telemetry settings when running in standalone or frontend mode and telemetry is enabled
-if [[ "$TELEMETRY" == "true" && ( "$MODE" == "frontend" || "$MODE" == "standalone" || "$MODE" == "dual" ) ]]; then
+if [[ "$TELEMETRY" == "true" && ("$MODE" == "frontend" || "$MODE" == "standalone" || "$MODE" == "dual") ]]; then
   cp -r /speedtest/results /var/www/html/results
 
   if [ "$MODE" == "frontend" ]; then
@@ -46,16 +50,16 @@ if [[ "$TELEMETRY" == "true" && ( "$MODE" == "frontend" || "$MODE" == "standalon
     cp /speedtest/backend/getIP_util.php /var/www/html/backend
   fi
 
-  if  [ "$DB_TYPE" == "mysql" ]; then
+  if [ "$DB_TYPE" == "mysql" ]; then
     sed -i 's/$db_type = '\''.*'\''/$db_type = '\'$DB_TYPE\''/g' /var/www/html/results/telemetry_settings.php
     sed -i 's/$MySql_username = '\''.*'\''/$MySql_username = '\'$DB_USERNAME\''/g' /var/www/html/results/telemetry_settings.php
     sed -i 's/$MySql_password = '\''.*'\''/$MySql_password = '\'$DB_PASSWORD\''/g' /var/www/html/results/telemetry_settings.php
     sed -i 's/$MySql_hostname = '\''.*'\''/$MySql_hostname = '\'$DB_HOSTNAME\''/g' /var/www/html/results/telemetry_settings.php
     sed -i 's/$MySql_databasename = '\''.*'\''/$MySql_databasename = '\'$DB_NAME\''/g' /var/www/html/results/telemetry_settings.php
-    if  [ "$DB_PORT" != "" ]; then
+    if [ "$DB_PORT" != "" ]; then
       sed -i 's/$MySql_port = '\''.*'\''/$MySql_port = '\'$DB_PORT\''/g' /var/www/html/results/telemetry_settings.php
     fi
-  elif  [ "$DB_TYPE" == "postgresql" ]; then
+  elif [ "$DB_TYPE" == "postgresql" ]; then
     sed -i 's/$db_type = '\''.*'\''/$db_type = '\'$DB_TYPE\''/g' /var/www/html/results/telemetry_settings.php
     sed -i 's/$PostgreSql_username = '\''.*'\''/$PostgreSql_username = '\'$DB_USERNAME\''/g' /var/www/html/results/telemetry_settings.php
     sed -i 's/$PostgreSql_password = '\''.*'\''/$PostgreSql_password = '\'$DB_PASSWORD\''/g' /var/www/html/results/telemetry_settings.php
@@ -77,14 +81,22 @@ if [[ "$TELEMETRY" == "true" && ( "$MODE" == "frontend" || "$MODE" == "standalon
   fi
 
   mkdir -p /database/
-  chown www-data /database/
+  if is_alpine; then
+    chown apache /database/
+  else
+    chown www-data /database/
+  fi
 fi
 
-chown -R www-data /var/www/html/*
+if is_alpine; then
+  chown -R apache /var/www/html/*
+else
+  chown -R www-data /var/www/html/*
+fi
 
 # Allow selection of Apache port for network_mode: host
 if [ "$WEBPORT" != "80" ]; then
-  if [ -f /etc/alpine-release ]; then
+  if is_alpine; then
     sed -i "s/^Listen 80\$/Listen $WEBPORT/g" /etc/apache2/httpd.conf
   else
     sed -i "s/^Listen 80\$/Listen $WEBPORT/g" /etc/apache2/ports.conf
@@ -95,7 +107,7 @@ fi
 echo "Done, Starting APACHE"
 
 # This runs apache
-if [ -f /etc/alpine-release ]; then
+if is_alpine; then
   exec httpd -DFOREGROUND
 else
   exec apache2-foreground

+ 24 - 0
docker/test/docker-compose.yml

@@ -78,3 +78,27 @@ services:
     environment: *env_vars_mysql
     ports:
       - 9126:8080
+
+  ###### SQLITE ######
+  speedtest-debian-sqlite:
+    # check at http://localhost:9125/results/sanitycheck.php
+    build:
+      context: ../..
+      dockerfile: Dockerfile
+    environment: &env_vars_sqlite
+      - PASSWORD=gimmeTheStats1337
+      - [email protected]
+      - ENABLE_ID_OBFUSCATION=true
+      - MODE=standalone
+      - REDACT_IP_ADDRESSES=true
+      - TELEMETRY=true
+    ports:
+      - 9127:8080
+
+  speedtest-alpine-sqlite:
+    build:
+      context: ../..
+      dockerfile: Dockerfile.alpine
+    environment: *env_vars_sqlite
+    ports:
+      - 9128:8080