euzu / m3u-filter

m3u-filter (iptv filter) is an application which can filter/rename/map entries out of a playlist in M3U / XTREAM format and can save/serve it as m3u, xtream or kodi format. It can be used as reverse or redirect proxy for xtream.
MIT License
80 stars 8 forks source link

docker and docker compose deplyment error #105

Closed aniel300 closed 6 days ago

aniel300 commented 6 days ago

am getting this error when trying to deploy it with docker compose image

euzu commented 6 days ago

@aniel300 can you paste your docker-compose file ?

aniel300 commented 6 days ago

it looks like this

m3ufilter:
    container_name: m3ufilter
    image: m3u-filter
    user: "133:144"
    working_dir: /
    volumes:
      - $PERSIST/m3ufilter/config:/config
      - $PERSIST/m3ufilter/data:/data
      - $PERSIST/m3ufilter/backup:/backup
      - $PERSIST/m3ufilter/downloads:/downloads
    environment:
      - TZ=Europe/Paris
    ports:
      - "8901:8901"
    restart: unless-stopped
    # healthcheck:
    #   test: ["CMD", "/m3u-filter", "-p", "/config" "--healthcheck"]  
    #   interval: 30s  
    #   timeout: 10s   
    #   retries: 3     
    #   start_period: 10s`  
euzu commented 6 days ago

Do you want to use the image which i have created on github or did you create your own image?

aniel300 commented 6 days ago

i want to use ur image as i dont know how to build my own image from scratch yet

euzu commented 6 days ago

@aniel300 you compose file is wrong:

here is my compose file which i am using:


services:
  m3u-filter:
    container_name: m3u-filter
    image: ghcr.io/euzu/m3u-filter:latest
    user: "133:144"
    working_dir: /
    volumes:
      - /opt/m3u-filter/config:/config
      - /opt/m3u-filter/data:/data
      - /opt/m3u-filter/.backup:/backup
      - /opt/m3u-filter/downloads:/downloads
    environment:
      - TZ=Europe/Paris
    ports:
      - "8901:8901"
    restart: unless-stopped

You need to write your own config files, because the config files are user specific. In my environment i have a linux server and put all the files under /opt/m3u-filter. You need to adapt this your server.

I have created an user m3u-filter on the system which has the uid and gid "133:144", this is why i have it in my docker-compose

aniel300 commented 6 days ago

ok let me adjust it on my end. btw in the readme u had image: m3u-filter as the image but in this example u just gave me u have image: ghcr.io/euzu/m3u-filter:latest just fyi. but thank you i will give this a try now

euzu commented 6 days ago

@aniel300 in th readme the example is for building the docker image yourself. But i cant edit it to avoid misunderstandings.

aniel300 commented 6 days ago

is there a way to make the container create the folders at the file system level under my user? image

aniel300 commented 6 days ago

@aniel300 in th readme the example is for building the docker image yourself. But i cant edit it to avoid misunderstandings.

ahh sorry my bad but yes if u can make some distention between building the image and deploying using ur image, it will be appreciated.

euzu commented 6 days ago

@aniel300 i dont understand your question, but in your screenshot you put the files under the /docker directory.

For example your user directory is /home/aniel300 then you can create the folder /home/aniel300/m3u-ffilter and the subfolders in the screenshot.

Then you need to adjust the docker-compose.yml for this directory.

aniel300 commented 6 days ago

i put all my containers config folders under /docker. what am trying to say is that the container is creating the folder under the root user instead of my user even though i gave it the correct uid and gid. here is my latest compose config


  m3ufilter:
    container_name: m3ufilter
    image: ghcr.io/euzu/m3u-filter:latest
    user: "1000:1000"
    working_dir: /
    volumes:
      - $PERSIST/m3ufilter/config:/config
      - $PERSIST/m3ufilter/data:/data
      - $PERSIST/m3ufilter/backup:/backup
      - $PERSIST/m3ufilter/downloads:/downloads
    environment:
      # - PUID=$PUID
      # - PGID=$PGID
      - TZ=$TIME_ZONE 
    ports:
      - "8901:8901"
    restart: unless-stopped
euzu commented 6 days ago

@aniel300 this is what i wrote, with user: xxx:yyy where xxx is the uid and yyy is the gid. you can start m3u-filter with the specified user. That is how it runs on my system.

drwxr-xr-x  2 m3u    m3u        4096 Nov  5 17:42 config
drwxr-xr-x  8 m3u    m3u        4096 Nov  5 17:39 data
...
...

I am using a specific user m3u and all files created are created under this user.

euzu commented 6 days ago

@aniel300 when you created the folders with sudoyou should chown them initially or it could be that m3u-filter cant write into this folders.

aniel300 commented 6 days ago

it should as /docker aka $PERSIST is owned by my user. i will chown it and hopefully it doesn't get reverted back. but keep that in mind that the container is not creating those folders when u first start the container under the specified and defined user.

euzu commented 6 days ago

@aniel300 you can create a feature request create configured folders if they don't exist if you need this function. Then i will implement it when i have time.

aniel300 commented 6 days ago

ok i will do. thanks