Subject: EFAULT (Bad address) error during file extraction in Container Station 3

YAML configuration:

YAML

services:
  mariadb:
    image: mariadb:latest
    container_name: mariadb
    restart: always
    network_mode: host
    environment:
      - MYSQL_ROOT_PASSWORD=REDACTED_PASSWORD
      - MYSQL_DATABASE=wpdb
      - MYSQL_USER=wpuser
      - MYSQL_PASSWORD=REDACTED_PASSWORD
    volumes:
      - mariadb_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    container_name: wordpress
    restart: always
    network_mode: host
    depends_on:
      - mariadb
    environment:
      - WORDPRESS_DB_HOST=127.0.0.1:3306
      - WORDPRESS_DB_NAME=wpdb
      - WORDPRESS_DB_USER=wpuser
      - WORDPRESS_DB_PASSWORD=REDACTED_PASSWORD
    volumes:
      - wordpress_data:/var/www/html

volumes:
  mariadb_data:
  wordpress_data:

The installation fails with the following error:

tar: ./wp-includes/js/dist: Cannot change mode to rwxr-xr-x: Bad address

Question:

How can this be resolved within Container Station 3 without resorting to an alternative installation method (such as the native QPKG app)? This EFAULT error indicates a kernel or VFS driver issue during the chmod syscall on the volume mount.


I’ve had a similar issue trying to run LibreNMS in ContainerStation.

Would love to know the answer…

Thank you for your feedback! I will forward the relevant issues to our internal team for further analysis and evaluation.

Your YAML file has some issues:

  1. You cannot use network = host because WordPress uses TCP port 80, which conflicts with the QTS system. We recommend using a different port or using bridging to obtain a different IP address.
  2. Your WordPress should not use 127.0.0.1 when connecting to MariaDB; you can use their Docker names.
  3. Since files need to be uncompressed to the docker volume space , you can add :z to the end of volumes.

You can refer to my YAML file below, and then you can access your WordPress via http://nas_ip:12345




services:
  mariadb:
    image: mariadb:latest
    container_name: mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=REDACTED_PASSWORD
      - MYSQL_DATABASE=wpdb
      - MYSQL_USER=wpuser
      - MYSQL_PASSWORD=REDACTED_PASSWORD
    volumes:
      - mariadb_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    container_name: wordpress
    restart: always
    ports:
      - "12345:80"
    depends_on:
      - mariadb
    environment:
      - WORDPRESS_DB_HOST=mariadb:3306
      - WORDPRESS_DB_NAME=wpdb
      - WORDPRESS_DB_USER=wpuser
      - WORDPRESS_DB_PASSWORD=REDACTED_PASSWORD
    volumes:
      - wordpress_data:/var/www/html:z

volumes:
  mariadb_data:
  wordpress_data: