Code Monkey home page Code Monkey logo

docker-librespeed's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers.

No Flash, No Java, No Websocket, No Bullshit.

librespeed

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/librespeed:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Application Setup

Access the speedtest webui at http://SERVERIP. The results database can be accessed at http://SERVERIP/results/stats.php with the password set.
The default template used is based on example-singleServer-full.html. However, all templates are provided for reference at /config/www/. Feel free to customize /config/www/index.html as you like. Delete the file and restart to go back to the image default.

You can optionally place customized speedtest.js and speedtest_worker.js files under /config/www and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults.

If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link
https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database

To enable a custom results page set the environment variable CUSTOM_RESULTS=true and start (or restart) the container at least once for /config/www/results/index.php to be created and modify this file to your liking.

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  librespeed:
    image: lscr.io/linuxserver/librespeed:latest
    container_name: librespeed
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - PASSWORD=PASSWORD
      - CUSTOM_RESULTS=false #optional
      - DB_TYPE=sqlite #optional
      - DB_NAME=DB_NAME #optional
      - DB_HOSTNAME=DB_HOSTNAME #optional
      - DB_USERNAME=DB_USERNAME #optional
      - DB_PASSWORD=DB_PASSWORD #optional
      - DB_PORT=DB_PORT #optional
      - IPINFO_APIKEY=ACCESS_TOKEN #optional
    volumes:
      - /path/to/librespeed/config:/config
    ports:
      - 80:80
    restart: unless-stopped
docker run -d \
  --name=librespeed \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e PASSWORD=PASSWORD \
  -e CUSTOM_RESULTS=false `#optional` \
  -e DB_TYPE=sqlite `#optional` \
  -e DB_NAME=DB_NAME `#optional` \
  -e DB_HOSTNAME=DB_HOSTNAME `#optional` \
  -e DB_USERNAME=DB_USERNAME `#optional` \
  -e DB_PASSWORD=DB_PASSWORD `#optional` \
  -e DB_PORT=DB_PORT `#optional` \
  -e IPINFO_APIKEY=ACCESS_TOKEN `#optional` \
  -p 80:80 \
  -v /path/to/librespeed/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/librespeed:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 80 web gui
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-e PASSWORD=PASSWORD Set the password for the results database.
-e CUSTOM_RESULTS=false (optional) set to true to enable custom results page in /config/www/results/index.php.
-e DB_TYPE=sqlite Defaults to sqlite, can also be set to mysql or postgresql.
-e DB_NAME=DB_NAME Database name. Required for mysql and pgsql.
-e DB_HOSTNAME=DB_HOSTNAME Database address. Required for mysql and pgsql.
-e DB_USERNAME=DB_USERNAME Database username. Required for mysql and pgsql.
-e DB_PASSWORD=DB_PASSWORD Database password. Required for mysql and pgsql.
-e DB_PORT=DB_PORT Database port. Required for mysql.
-e IPINFO_APIKEY=ACCESS_TOKEN Access token from ipinfo.io. Required for detailed IP information.
-v /config Persistent config files

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it librespeed /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f librespeed
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' librespeed
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/librespeed:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull librespeed
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d librespeed
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/librespeed:latest
  • Stop the running container:

    docker stop librespeed
  • Delete the container:

    docker rm librespeed
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-librespeed.git
cd docker-librespeed
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/librespeed:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 23.12.23: - Rebase to Alpine 3.19 with php 8.3.
  • 06.12.23: - Replace php mysqli with php pdo_pgsql.
  • 25.05.23: - Rebase to Alpine 3.18, deprecate armhf.
  • 14.05.23: - Added support for ipinfo.io
  • 20.01.23: - Rebase to alpine 3.17 with php8.1.
  • 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs (see changes announcement).
  • 01.03.21: - Fix up database settings. Make sure index.html is recreated.
  • 28.02.21: - Added php7-ctype.
  • 23.01.21: - Rebasing to alpine 3.13.
  • 01.06.20: - Rebasing to alpine 3.12.
  • 29.04.20: - Add donation links for LibreSpeed to Github sponsor button and container log.
  • 09.01.20: - Initial Release.

docker-librespeed's People

Contributors

aptalca avatar ironicbadger avatar jonathanmtran avatar linuxserver-ci avatar nemchik avatar pawanrai9999 avatar roxedus avatar thelamer avatar zebradil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-librespeed's Issues

[FEAT] Add parameter "enable_id_obfuscation" to environment variables

Is this a new feature request?

  • I have searched the existing issues

Wanted change

Want to set parameter "enable_id_obfuscation" from results/telemetry_settings.php via docker environment variables

Reason for change

If I want to change this parameter in results/telemetry_settings.php I had to re-write file telemetry_settings.php. It will be easier if this parameter can be set as all other parameters (DB_,IPINFO_APIKEY, etc) via env variables.

Proposed code change

No response

Multiple Containers and obfuscated IDs Issue

linuxserver.io

Running multiple containers that are load balanced results in result images not loading correctly.

Expected Behavior

I have the following setup:

HA Proxy in front of a two node Docker Swarm cluster, VM1 and VM2.

VM1 has a librespeed container and a postgres container.
VM2 has a librespeed container.

I should be able to run speedtests and load results pages and have them be consistent across the containers.

Current Behavior

Issue 1:
Instead, what happens right now is HA Proxy load balances across the two librespeed containers to run speed tests. This works well, except that due to obfuscated ids, the results image pages are not consistent across the images. This results in sometimes a blank page when I am routed through the HA Proxy. When I access the container directly for the one that ran the speedtest in question, the results image loads correctly. When I look at the individual container results pages, they have different ids.

Issue 2:
Another related issue is that the obfuscated ids are changed every time I redeploy my stack. This means all previous results links will no longer work, as the ids have changed. One solution to this would be to be able to disable obfuscated ids, but I see that according to bf2e0d5d085c8a59c2dc97c493c517304f66e8df/root/etc/cont-init.d/50-config#L35, this is hard coded to true.

If this was turned into an environment variable that would be awesome and would fix both issues I believe. I see #14 has already asked for this, but I have not seen any progress.

Steps to Reproduce

For issue 1 above:

  1. Deploy two librespeed containers and one postgres container.
  2. Setup postgres by importing the necessary sql file.
  3. Load balance between the two containers using something like ha proxy, traefik, nginx, etc.
  4. Run a speedtest.
  5. Copy the image link and open in a new tab. Refresh a bunch and you will see sometimes it is blank.

For issue 2 above:

  1. Deploy one librespeed container and one postgres container.
  2. Setup postgres by importing the necessary sql file.
  3. Run a speedtest.
  4. Open the link to the image. It works.
  5. Shutdown the stack and spin it back up.
  6. Try the link again and it won't work due to ids being changed.

Environment

OS: RHEL8
CPU architecture: x86_64
How docker service was installed: Official docker repo.

Command used to create docker container (run/create/compose/screenshot)

Docker Stack File:

There are some environment variables there that this image doesn't use, I left them in because I was testing out the official image versus this one.

version: '3.7'
services:
  librespeed:
    image: lscr.io/linuxserver/librespeed:latest
    deploy:
      restart_policy:
        condition: any
      mode: global
    ports:
      - 8084:80
    environment:
      - TZ=America/Los_Angeles
      - MODE=standalone
      - TELEMETRY=true
      - ENABLE_ID_OBFUSCATION=false
      - REDACT_IP_ADDRESSES=false
      - PASSWORD=<redact>
      - EMAIL=<redact>
      - IPINFO_APIKEY=<redact>
      - DISABLE_IPINFO=false
      - DISTANCE=mi
      - DB_TYPE=postgresql
      - DB_NAME=librespeed
      - DB_HOSTNAME=postgres
      - DB_USERNAME=librespeed
      - DB_PASSWORD=<redact>
    volumes:
      - /librespeed/config-www:/config/www
    networks:
      - librespeed_internal
 
  postgres:
    image: postgres:14-alpine
    deploy:
      restart_policy:
        condition: any
    environment:
      - POSTGRES_USER=librespeed
      - POSTGRES_PASSWORD=<redact>
      - POSTGRES_DB=librespeed
      - TZ=America/Los_Angeles
    volumes:
      - /librespeed/postgres:/var/lib/postgresql/data
    networks:
      - librespeed_internal

networks:
  librespeed_internal:

Docker logs

[BUG] Docker image 5.3.0 breaks custom index.html

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When deploying librespeed with container tag 5.3.0 (latest), my custom template in /config/www/index.html is not served. On a clean build, template examples are also not generated in /config/www

Expected Behavior

My template in /config/www/index.html should be served and templates should be generated in /etc/www on a clean build.

This is working when I roll back to version 5.2.5.

Steps To Reproduce

Deploy container lscr.io/linuxserver/librespeed:5.3.0
check logs
check /config/www/index.html

Environment

- OS: Ubuntu 22.04.3 LTS
- How docker service was installed: apt package, docker version 1.5-2

CPU architecture

x86-64

Docker creation

librespeed:
    image: lscr.io/linuxserver/librespeed:5.3.0 #latest
    container_name: librespeed
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - PASSWORD=PASSWORD
    volumes:
      - $PWD/librespeed:/config
    ports:
      - "80:80"
    restart: unless-stopped

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: skipped
[migrations] done
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 

   Brought to you by linuxserver.io
───────────────────────────────────────

To support the app dev(s) visit:
LibreSpeed (Liberapay): https://liberapay.com/fdossena/donate
LibreSpeed (Paypal): https://www.paypal.me/sineisochronic

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1000
User GID:    1000
───────────────────────────────────────

using keys found in /config/keys
ln: failed to create symbolic link '/app/www/public/index.html': File exists
cp: cannot stat '/app/www/public/example*.html': No such file or directory
[custom-init] No custom files found, skipping...
[ls.io-init] done.

Enable customization of the image too

Please enable the customizatin of the results image. The file that generates the image is located in /usr/share/webapps/librespeed/results/index.php
The same symlink strategy that was used with index.html could be used to allow changes to this file.

Furthermore, adding an /img directory to the /config would allow users to upload and use their custom logos and favicons.

Results don't work with MySQL (pdo_mysql driver not loaded)

linuxserver.io

The results page does work in SQLite, but doesn't with MySQL. Error message shows 'could not find driver'.


Expected Behavior

When loading results/stats.php and logging in with web password, I expect a message that no results exist or a list of results.

Current Behavior

Instead a (general) error message is shown.

When using MySQL environment vars and dbtype mysql, an error message appears (when turning on error_reporting): Error could not find driver.
When looking in Google, I stumble upon https://stackoverflow.com/questions/2852748/pdoexception-could-not-find-driver.
And indeed in /etc/php7/php.ini the extension=pdo_mysql is commented.
I wasn't able to test this solution, unfortunately. But it looks spot on.

Steps to Reproduce

  1. Use docker image
  2. For environment variables: all MySQL variables and dbtype=mysql
  3. open /result/stats.php

Environment

OS: Docker
CPU architecture: arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Via Docker Swarm, with compose file and image: linuxserver/librespeed:arm64v8-5.2.5
Using, among others:

  • DB_TYPE=mysql
    - DB_HOSTNAME=${DB_HOSTNAME}
    - DB_NAME=${DB_NAME}
    - DB_USERNAME=${DB_USERNAME}
    - DB_PASSWORD=${DB_PASSWORD}
    - DB_PORT=${DB_PORT}

Docker logs

no relevant logging after the container is started.
Not even when visiting /results/stats.php

Use Librespeed environment variables

linuxserver.io


Desired Behavior

Librespeed's official Docker image supports a number of environment variables, such as mode (values: standalone, frontend, backend), TELEMETRY (true/false), and many more.

LSIO's image also supports a number of environment variables which the official image does not, which is fantastic, but I think adding the additional env vars supported in the official image would truly make this the go-to image for Librespeed.

Current Behavior

Much fewer of the major configuration points are available via environment variables than in the official image.

Alternatives Considered

Using the official image. This is a valid option, but I'd like to also configure the DB settings using env vars, something which cannot be done with the official image.

No DB record is created - /result page isnt working

Hi,

  • Using your latest image
  • Configured DB to be postgresql
  • Run script inside postgres container to initialize DB
  • Tested via pgadmin, DB was created
  • Run default index.html which has telemetry enabled by default (see it in the page source)
  • No DB record is created

What might be the problem please? I would like to he DB records created and /results page working.. Thx, Michal

Docker-Compose.yml:

version: "3.7"

services:
  speedtest:
    container_name: speedtest.509.speedtest.80
    image: linuxserver/librespeed:latest
    restart: always
    ports:
      - 50980:80
    volumes:
      - $PWD/speedtest:/config
    environment:
      - PUID=1000
      - PGID=994
      - TZ=Europe/Prague
      - PASSWORD=vysledky
      - CUSTOM_RESULTS=true
      - DB_TYPE=postgresql
      - DB_NAME=speedtest
      - DB_HOSTNAME=postgres
      - DB_USERNAME=speedtest
      - DB_PASSWORD=************************
    labels:
      # AUTOUPDATE
      - com.ouroboros.enable=true
      # TRAEFIK 2
      - traefik.enable=true
      - traefik.http.routers.speedtest.entrypoints=websecure
      - traefik.http.routers.speedtest.rule=Host(`speedtest.example.com`)
      - traefik.http.routers.speedtest.service=speedtest
      - traefik.http.services.speedtest.loadbalancer.server.port=80

  postgres:
    container_name: speedtest.509.postgres.30
    image: postgres:9
    restart: always
    ports:
      - 50930:5432
    expose:
      - 5432
    volumes:
      - $PWD/postgres:/var/lib/postgresql/data
    environment:
      - PUID=1000
      - PGID=994
      - POSTGRES_DB=speedtest
      - POSTGRES_USER=speedtest
      - POSTGRES_PASSWORD=************************

  pgadmin:
    container_name: speedtest.509.pgadmin.81
    image: dpage/pgadmin4
    restart: always
    ports:
      - 50981:80
    volumes:
      - $PWD/pgadmin:/var/lib/pgadmin
    environment:
      - PUID=1000
      - PGID=994
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=************************

  adminer:
    container_name: speedtest.509.adminer.82
    image: adminer
    restart: always
    ports:
      - 50982:8080
    environment:
      - PUID=1000
      - PGID=994

networks:
  default:
    name: speedtest.509

Network in Developer Tools:

image

Cannot access /results path:

image

[FEAT] Environment variable to disable telemetry

Is this a new feature request?

  • I have searched the existing issues

Wanted change

It would be nice to be able to disable telemetry entirely as possible with the original image.

Reason for change

GDPR and related laws are hard to follow and maintain, so not collecting any personal information may be desirable to avoid any legal risks.

Proposed code change

No response

[FEAT] See client IP when used with reverse proxy

Is this a new feature request?

  • I have searched the existing issues

Wanted change

I wish for support of X-Forwarded-For header from a reverse proxy.

Reason for change

I use Apache as a proxy for all my various containers and other services, and when loading the speedtest page through the proxy, the IP is listed as “(null)”.

Proposed code change

I don’t really have a change in mind, I’m not entirely sure how IP checks work, but some way to set the IP to the value of X-Forwarded-For if an IP doesn’t already exist.

/config/www/index.html file not recreated when deleted

linuxserver.io


Expected Behavior

When deleted, the index.html file located in /config/www/ should be recreated once the container is restarted as per the application setup guideline:

The default template used is based on example-singleServer-full.html. However, all templates are provided for reference at /config/www/. Feel free to customize /config/www/index.html as you like. Delete the file and restart to go back to the image default.

Current Behavior

When index.html file is deleted and container restarted, the file is not recreated generating a "403 forbidden" error.

Steps to Reproduce

  1. Delete /config/www/index.html
  2. Restart the container
  3. index.html is not recreated

Environment

OS: unRaid
CPU architecture: x86_64
How docker service was installed: From official docker repo. Template from unRaid Community Applications

Command used to create docker container (run/create/compose/screenshot)

Docker logs

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...
usermod: no changes

-------------------------------------
_ ()
| | ___ _ __
| | / __| | | / \
| | \__ \ | | | () |
|_| |___/ |_| \__/


Brought to you by linuxserver.io
-------------------------------------

To support the app dev(s) visit:
LibreSpeed (Liberapay): https://liberapay.com/fdossena/donate
LibreSpeed (Paypal): https://www.paypal.me/sineisochronic

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid: 99
User gid: 100
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing...
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing...
using keys found in /config/keys
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing...
/var/run/s6/etc/cont-init.d/50-config: line 22: : command not found
Setting permissions
[cont-init.d] 50-config: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

multiServers

How to use multiServers html?
I want to have a choice.

image

image

[BUG] MySQL connetion is broken (no pdo_mysql)

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Current image is missing php module "pdo_mysql" to establish connection to MySQL DB

Expected Behavior

MySQL should work out-of-the-box

Steps To Reproduce

  1. Choose DB type - mysql
  2. Try to launch container and save results to external DB

Environment

- OS: Ubuntu or AWS ECS

CPU architecture

x86-64

Docker creation

docker run -d \
  --name=librespeed \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e PASSWORD=pass1234 \
  -e CUSTOM_RESULTS=false\
  -e DB_TYPE=mysql \
  -e DB_NAME=speedtest\
  -e DB_HOSTNAME=localhost \
  -e DB_USERNAME=user\
  -e DB_PASSWORD=pass1234\
  -e DB_PORT=3306 \
  -p 85:80 \
  -v ./config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/librespeed:5.2.5-ls168

Container logs

default logs

[BUG] DB_TYPE=mysql PDO not find drive

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

php8-fpm extension pdo_mysql not install

Expected Behavior

No response

Steps To Reproduce

  1. container console
  2. apk add php8-pdo_mysql
  3. restart

Environment

- OS: raspberry pi3
- How docker service was installed:

CPU architecture

arm64

Docker creation

example change to db_type

Container logs

not

add env var for librespeed port

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.

I want to leverage this multiarch build to run on a switch that doesn't support lopback
this means it needs to be run with --network=host
however port 80 already has something on it
I need to be able to set an arbitrary port for the librespeed to run natively on

Expected Behavior

docker --rm -it --network=host -e PORT=8000 should result in a running container with librespeed running on port 8000

Current Behavior

there is no envar for port so this is not possible

Steps to Reproduce

docker --rm -it --network=host -e PORT=8000 doesn't run this on port 8000, it just runs on default of 80

Environment

UniFiOS (custom linux build)
CPU architecture: arm64
How docker service was installed:
It is actually podman not docker, but that shouldn't be too relevant, as podman can be aliased to docker and all commands work, the issue comes from how the platform holder decided to setup the container env itself - bridge networking does not work so i can't remap port using -p .

Command used to create docker container (run/create/compose/screenshot)

docker --rm -it --network=host -e PORT=8000 linuxserver/librespeed

Docker logs

# sudo podman run --rm -it --network=host  linuxserver/librespeed
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing... 
usermod: no changes

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    911
User gid:    911
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing... 
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing... 
generating self-signed keys in /config/keys, you can replace these with your own keys if required
Generating a RSA private key
..................................................+++++
...............+++++
writing new private key to '/config/keys/cert.key'
-----
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing... 
Setting permissions
[cont-init.d] 50-config: exited 0.
[cont-init.d] 99-custom-files: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
s6-supervise cron: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise php-fpm: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nginx: warning: unable to spawn ./run - waiting 10 seconds
[services.d] done.
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise cron: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise php-fpm: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nginx: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise cron: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise php-fpm: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nginx: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise cron: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise php-fpm: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nginx: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.