shlinkio / shlink-web-client

A React-based client application for Shlink
https://app.shlink.io
MIT License
293 stars 77 forks source link

Don't start when updated to version 4.0.1 #1050

Closed lfac76 closed 8 months ago

lfac76 commented 8 months ago

shlink-web-client version

4.0.1

How do you use shlink-web-client

Docker image

Current behavior

When I updated to version 4.0.1 I recieved the error:

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/ubuntu/dockge/stacks/shlink/servers.json" to rootfs at "/usr/share/nginx/html/servers.json": mount /home/ubuntu/dockge/stacks/shlink/servers.json:/usr/share/nginx/html/servers.json (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

Then I change to image: shlinkio/shlink-web-client:4.0.0 and work again.

Expected behavior

Start normally.

How to reproduce

Only update to version 4.0.1.

acelaya commented 8 months ago

Can you provide some reproducible steps?

lfac76 commented 8 months ago

I use this docker-compose.yaml. And after this update I need to change the image: shlinkio/shlink-web-client:latest to image: shlinkio/shlink-web-client:4.0.0.

How cant I get more infos or logs to help?

version: "3"
services:
  shlink:
    image: shlinkio/shlink:latest
    restart: unless-stopped
    container_name: shlink-backend
    environment:
      - TZ="America/Sao_Paulo"
      - DEFAULT_DOMAIN=links.lfac.net.br
      - IS_HTTPS_ENABLED=true
      - GEOLITE_LICENSE_KEY=${GEO}
      - DB_DRIVER=maria
      - DB_USER=shlink
      - DB_NAME=shlink
      - DB_PASSWORD=${DB_PASS}
      - DB_HOST=database
    depends_on:
      - database
    ports:
      - 8084:8080
  database:
    image: mariadb:10.8
    restart: unless-stopped
    container_name: shlink-database
    environment:
      - MARIADB_ROOT_PASSWORD=${DB_PASS}
      - MARIADB_DATABASE=shlink
      - MARIADB_USER=shlink
      - MARIADB_PASSWORD=${DB_PASS}
    volumes:
      - /home/ubuntu/dockge/stacks/shlink/data:/var/lib/mysql
  shlink-web-client:
    image: shlinkio/shlink-web-client:latest
    restart: unless-stopped
    container_name: shlink-gui
    volumes:
      - /home/ubuntu/dockge/stacks/shlink/servers.json:/usr/share/nginx/html/servers.json
    depends_on:
      - shlink
    ports:
      - 8083:80
networks: {}
acelaya commented 8 months ago

This can only be reproduced if the /home/ubuntu/dockge/stacks/shlink/servers.json file does not exist in the local machine.

Since it doesn't make sense to mount that file if it doesn't exist, as shlink-web-client does not generate servers there, simply drop the the volume and it will work.

Also, with v4.x, the port exposed by the container is 8080, not 80.

version: "3"
services:
  shlink:
    image: shlinkio/shlink:latest
    restart: unless-stopped
    container_name: shlink-backend
    environment:
      - TZ="America/Sao_Paulo"
      - DEFAULT_DOMAIN=links.lfac.net.br
      - IS_HTTPS_ENABLED=true
      - GEOLITE_LICENSE_KEY=${GEO}
      - DB_DRIVER=maria
      - DB_USER=shlink
      - DB_NAME=shlink
      - DB_PASSWORD=${DB_PASS}
      - DB_HOST=database
    depends_on:
      - database
    ports:
      - 8084:8080
  database:
    image: mariadb:10.8
    restart: unless-stopped
    container_name: shlink-database
    environment:
      - MARIADB_ROOT_PASSWORD=${DB_PASS}
      - MARIADB_DATABASE=shlink
      - MARIADB_USER=shlink
      - MARIADB_PASSWORD=${DB_PASS}
    volumes:
      - /home/ubuntu/dockge/stacks/shlink/data:/var/lib/mysql
  shlink-web-client:
    image: shlinkio/shlink-web-client:latest
    restart: unless-stopped
    container_name: shlink-gui
-    volumes:
-      - /home/ubuntu/dockge/stacks/shlink/servers.json:/usr/share/nginx/html/servers.json
    depends_on:
      - shlink
    ports:
-      - 8083:80
+      - 8083:8080
networks: {}