Unable to load Frigate config.yml in Docker container

Hi i am struggling to load Frigate Config.Yml file into Docker container. I have followed the installation details n however i receive the following error`
Error parsing config: [Errno 21] Is a directory: ‘/config/config.yml’

  • Starting nginx nginx

    …done.

Error parsing config: [Errno 21] Is a directory: ‘/config/config.yml’

  • Starting nginx nginx

    …done.

Error parsing config: [Errno 21] Is a directory: ‘/config/config.yml’

  • Starting nginx nginx

    …done.

Error parsing config: [Errno 21] Is a directory: ‘/config/config.yml’

  • Starting nginx nginx

    …done.

Error parsing config: [Errno 21] Is a directory: ‘/config/config.yml’

I understand that the container believe this is a directory. I have tried to solve the problem by looking for solution but with out success. I am running the container on Proxmox in docker and portainer. On a mini pc designated to Proxmox .

My container setting are in container are :

Host/volume Path in container
/mnt/data/frigate/config.yml /config/config.yml
/etc/localtime /etc/localtime
/mnt/data/frigate /media/frigate

Any help would be appreciated as too where i am going wrong. I know that my frigate config.yml is working as it works fine in HA.

Try just mounting the folder instead of the individual file

/mnt/data/frigate/config : /config

Place file at /mnt/data/frigate/config/config.yml

Probably move videos also

/mnt/data/frigate/files : /media/frigate

Thanks for replying.

I have tried your proposal and receiving the same results. I have checked the path to the config.yml and it is correct (?)

root@pve:/mnt/data/frigate/config# ls
config.yml
root@pve:/mnt/data/frigate/config# nano config.yml
root@pve:/mnt/data/frigate/config#
root@pve:/mnt/data/frigate/config#

I have know where i am going wrong as i tried another installation and i have the same situation. I was hoping the owner of Frigate NVR would respond on Github but no luck ? I would like to solve the problem as i have on order Coral accelerators.

Verify container has correct permissions to access folders

Also

I say mount folder /config
Portainer screenshot show you mount file /config/config.yml
I think this may be OK and permission is your main issue but if you have fail after fix file and folder permissions try mount folder only

Found this

It may explain issue better for you

https://airflowiki.com/kb/isadirectoryerror-errno-21-is-a-directory/

Hi have tried many option now to get this container to connect and still i it comes up with the Errn21 parsing config. The path to the config is correct. I can’t understand why i receive the error or what i am doing wrong. I have tried Docker compose the Frigate example with the mount points is not accepted by portainer ? I even tried installing a config.yml directly into the container by nano. This still didn’t work I followed the install from Frigate Running Frigate in Docker LXC Blakebalckshear # 1111 which include the Coral Accelerator.

1 Like

You verify folder + file permission?

Also I think you missing labelmap but this may be unrelated to current issue of error 21

I mount like below

/etc/localtime:/etc/localtime
/cam/docker/frigate/application/media_frigate:/media/frigate
/main/docker/frigate/application/config/config.yml:/config/config.yml
/main/docker/frigate/application/config/labelmap.txt:/config/labelmap.txt

Hi I decided to start allover again now i have a different error . The container is created but will not load due error
OCI runtime create failed: container_linux.go:380: starting container process caused: apply caps: operation not permitted: unknown text
Here is a copy of the container details created
‘’’
“AppArmorProfile”: “unconfined”,
“Args”: [],
“Config”: {
“AttachStderr”: false,
“AttachStdin”: false,
“AttachStdout”: false,
“Cmd”: [
“/run.sh”
],
“Domainname”: “”,
“Entrypoint”: null,
“Env”: [
“FRIGATE_RTSP_PASSWORD=password”,
“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”,
“FLASK_ENV=development”,
“DEBIAN_FRONTEND=noninteractive”,
“LIBVA_DRIVER_NAME=i965”
],
“ExposedPorts”: {
“1935/tcp”: {},
“5000/tcp”: {}
},
“Hostname”: “ab1fafd575b0”,
“Image”: “blakeblackshear/frigate:stable-amd64”,
“Labels”: {
“com.docker.compose.config-hash”: “6396b850d0cb2a76c52a4994a807c72d60a378ed4a1e7743dce6f11f309c68b7”,
“com.docker.compose.container-number”: “1”,
“com.docker.compose.oneoff”: “False”,
“com.docker.compose.project”: “frigate1”,
“com.docker.compose.project.config_files”: “/data/compose/22/docker-compose.yml”,
“com.docker.compose.project.working_dir”: “/data/compose/22”,
“com.docker.compose.service”: “frigate”,
“com.docker.compose.version”: “1.27.4”,
“maintainer”: “[email protected]
},
“OnBuild”: null,
“OpenStdin”: false,
“StdinOnce”: false,
“Tty”: false,
“User”: “”,
“Volumes”: {
“/config/config.yml”: {},
“/etc/localtime”: {},
“/media/frigate”: {}
},
“WorkingDir”: “/opt/frigate”
},
“Created”: “2021-09-28T09:29:07.073406845Z”,
“Driver”: “overlay2”,
“ExecIDs”: null,
“GraphDriver”: {
“Data”: {
“LowerDir”: “/var/lib/docker/overlay2/9287c1e5f392b7deba3abad078e04134aaf7f27c8b3cf57955ee663f50f7616b-init/diff:/var/lib/docker/overlay2/625273b7434b723c3e176969c0f209216884038da8caf8a4c364fe17100f6f25/diff:/var/lib/docker/overlay2/c111840f8edf21c15e9218814257ecc89166225873790594d915b0d9b505043e/diff:/var/lib/docker/overlay2/11c6919478092b80e8f0a9b703414fb2b6746d409665245445f7a40304e34fb9/diff:/var/lib/docker/overlay2/bbce6605f7d84a3fe45c3cac7f333848a5e294b38e3f7857a66d6677f94f7427/diff:/var/lib/docker/overlay2/3d50cdbbdfa65c258a6448b16bac59d6f4d69af292946c5e730b717040554301/diff:/var/lib/docker/overlay2/aa7e2042baf08a6b5b744d67239aa991bcad8aaa80830bdc6993ee2e3c65685a/diff:/var/lib/docker/overlay2/d29cdc50156ead663208d178b885e4353218d78b45524bfea375c9a4e0c9ef55/diff:/var/lib/docker/overlay2/4f50095c55dfc84e8464027fbe6c5e7a9177fa31bea8ce9ab4ff0f7eda462b96/diff:/var/lib/docker/overlay2/93dd8ff6893663f721967368614151877a6f5f4f04b2729662587dbf9d2fae52/diff:/var/lib/docker/overlay2/952648b50894c7d8349cc556603aea70dc7efa39b4163a12870d01f826952ebc/diff:/var/lib/docker/overlay2/2a3a47194d72b8ee4e7d6ee69db7748ba3c7725c1c2a5f5ae2590b6adfe1bb3a/diff:/var/lib/docker/overlay2/e5640b1a803c4d8a6c3f8fc5632333171cd4f3935dbf28c19668ba9226262864/diff:/var/lib/docker/overlay2/23eb743b69fea852053b28d645d13403d7dc23bfab641f50e665d5bcc1e2673b/diff:/var/lib/docker/overlay2/4791d361868869ffd0a0d1a347c26038a4e0cefc2803e107330eb8836244e11a/diff:/var/lib/docker/overlay2/23e5ef20adc29b84e24c5b0ab9c083d6e4e6cea747fbd96436eea545ec21db74/diff:/var/lib/docker/overlay2/3d2df1d0d6feffa719f7a0324000f3170850af8a3d2d3aa6cd1cb9c1c4b88694/diff:/var/lib/docker/overlay2/a28b2ec19524cf1d3029fe27f9db03d87fa1ace273e7ff79d7bf933569c064d9/diff:/var/lib/docker/overlay2/1080f75613da27f8705fa7db477947ede09a4cdb939c87a6cce80c3b883060e1/diff”,
“MergedDir”: “/var/lib/docker/overlay2/9287c1e5f392b7deba3abad078e04134aaf7f27c8b3cf57955ee663f50f7616b/merged”,
“UpperDir”: “/var/lib/docker/overlay2/9287c1e5f392b7deba3abad078e04134aaf7f27c8b3cf57955ee663f50f7616b/diff”,
“WorkDir”: “/var/lib/docker/overlay2/9287c1e5f392b7deba3abad078e04134aaf7f27c8b3cf57955ee663f50f7616b/work”
},
“Name”: “overlay2”
},
“HostConfig”: {
“AutoRemove”: false,
“Binds”: [
“/users/mike/frigate_media:/media/frigate:rw”,
“/etc/localtime:/etc/localtime:ro”,
“/Users/mike/config.yaml:/config/config.yml:ro”
],
“BlkioDeviceReadBps”: null,
“BlkioDeviceReadIOps”: null,
“BlkioDeviceWriteBps”: null,
“BlkioDeviceWriteIOps”: null,
“BlkioWeight”: 0,
“BlkioWeightDevice”: null,
“CapAdd”: null,
“CapDrop”: null,
“Cgroup”: “”,
“CgroupParent”: “”,
“CgroupnsMode”: “private”,
“ConsoleSize”: [
0,
0
],
“ContainerIDFile”: “”,
“CpuCount”: 0,
“CpuPercent”: 0,
“CpuPeriod”: 0,
“CpuQuota”: 0,
“CpuRealtimePeriod”: 0,
“CpuRealtimeRuntime”: 0,
“CpuShares”: 0,
“CpusetCpus”: “”,
“CpusetMems”: “”,
“DeviceCgroupRules”: null,
“DeviceRequests”: null,
“Devices”: null,
“Dns”: null,
“DnsOptions”: null,
“DnsSearch”: null,
“ExtraHosts”: null,
“GroupAdd”: null,
“IOMaximumBandwidth”: 0,
“IOMaximumIOps”: 0,
“IpcMode”: “private”,
“Isolation”: “”,
“KernelMemory”: 0,
“KernelMemoryTCP”: 0,
“Links”: null,
“LogConfig”: {
“Config”: {},
“Type”: “json-file”
},
“MaskedPaths”: null,
“Memory”: 0,
“MemoryReservation”: 0,
“MemorySwap”: 0,
“MemorySwappiness”: null,
“Mounts”: [
{
“Target”: “/tmp/cache”,
“TmpfsOptions”: {
“SizeBytes”: 1000000000
},
“Type”: “tmpfs”
}
],
“NanoCpus”: 0,
“NetworkMode”: “frigate1_default”,
“OomKillDisable”: null,
“OomScoreAdj”: 0,
“PidMode”: “”,
“PidsLimit”: null,
“PortBindings”: {
“1935/tcp”: [
{
“HostIp”: “”,
“HostPort”: “1935”
}
],
“5000/tcp”: [
{
“HostIp”: “”,
“HostPort”: “5000”
}
]
},
“Privileged”: true,
“PublishAllPorts”: false,
“ReadonlyPaths”: null,
“ReadonlyRootfs”: false,
“RestartPolicy”: {
“MaximumRetryCount”: 0,
“Name”: “unless-stopped”
},
“Runtime”: “runc”,
“SecurityOpt”: [
“label=disable”
],
“ShmSize”: 67108864,
“UTSMode”: “”,
“Ulimits”: null,
“UsernsMode”: “”,
“VolumeDriver”: “”,
“VolumesFrom”: []
},
“HostnamePath”: “/var/lib/docker/containers/ab1fafd575b0b5a008880077e1d1fc3da57ef3d37c241d75bb0f8e155171d2e6/hostname”,
“HostsPath”: “/var/lib/docker/containers/ab1fafd575b0b5a008880077e1d1fc3da57ef3d37c241d75bb0f8e155171d2e6/hosts”,
“Id”: “ab1fafd575b0b5a008880077e1d1fc3da57ef3d37c241d75bb0f8e155171d2e6”,
“Image”: “sha256:9dbe176dc3ffb5a0f78af63ab35587145f2abaf717f1ac67057cfd37d94f24d8”,
“LogPath”: “/var/lib/docker/containers/ab1fafd575b0b5a008880077e1d1fc3da57ef3d37c241d75bb0f8e155171d2e6/ab1fafd575b0b5a008880077e1d1fc3da57ef3d37c241d75bb0f8e155171d2e6-json.log”,
“MountLabel”: “”,
“Mounts”: [
{
“Destination”: “/media/frigate”,
“Mode”: “rw”,
“Propagation”: “rprivate”,
“RW”: true,
“Source”: “/users/mike/frigate_media”,
“Type”: “bind”
},
{
“Destination”: “/etc/localtime”,
“Mode”: “ro”,
“Propagation”: “rprivate”,
“RW”: false,
“Source”: “/etc/localtime”,
“Type”: “bind”
},
{
“Destination”: “/config/config.yml”,
“Mode”: “ro”,
“Propagation”: “rprivate”,
“RW”: false,
“Source”: “/Users/mike/config.yaml”,
“Type”: “bind”
},
{
“Destination”: “/tmp/cache”,
“Mode”: “”,
“Propagation”: “”,
“RW”: true,
“Source”: “”,
“Type”: “tmpfs”
}
],
“Name”: “/frigate”,
“NetworkSettings”: {
“Bridge”: “”,
“EndpointID”: “”,
“Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“HairpinMode”: false,
“IPAddress”: “”,
“IPPrefixLen”: 0,
“IPv6Gateway”: “”,
“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“MacAddress”: “”,
“Networks”: {
“frigate1_default”: {
“Aliases”: [
“ab1fafd575b0”,
“frigate”
],
“DriverOpts”: null,
“EndpointID”: “”,
“Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“IPAMConfig”: null,
“IPAddress”: “”,
“IPPrefixLen”: 0,
“IPv6Gateway”: “”,
“Links”: null,
“MacAddress”: “”,
“NetworkID”: “0863774f1bca4224cb59cbf50d13527a9b7b239ea421cccdcce246aeef6e917f”
}
},
“Ports”: {},
“SandboxID”: “0760fc0856fde00dbb7dd3ca05dc5383b0a7c1f41dea47699c9e12d63920406b”,
“SandboxKey”: “/var/run/docker/netns/0760fc0856fd”,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”: null
},
“Path”: “/run.sh”,
“Platform”: “linux”,
“ProcessLabel”: “”,
“ResolvConfPath”: “/var/lib/docker/containers/ab1fafd575b0b5a008880077e1d1fc3da57ef3d37c241d75bb0f8e155171d2e6/resolv.conf”,
“RestartCount”: 0,
“State”: {
“Dead”: false,
“Error”: “OCI runtime create failed: container_linux.go:380: starting container process caused: apply caps: operation not permitted: unknown”,
“ExitCode”: 128,
“FinishedAt”: “0001-01-01T00:00:00Z”,
“OOMKilled”: false,
“Paused”: false,
“Pid”: 0,
“Restarting”: false,
“Running”: false,
“StartedAt”: “0001-01-01T00:00:00Z”,
“Status”: “created”
}
} text`
‘’’
I hope that you can help???

I have the same issue and am pulling my hair out.

Works fine in docker desktop but not from a Debian os in hyperv. Identical config.

image

This is docker error not really related to frigate I believe.
Did you resolve this?

Try mount just the frigate config file only and check result

Many times it just file permission error

I just placed the config file in the home folder on debian and changed the vol to /home/user/

Now it works.
So docker has access to my lost c drive on windows but I’m missing the permissions from the debian on hyperv by the looks of it.

Now next challenge to get frigate to use my AMD gpu and not cpu

1 Like

can you please send me a screenshot how you did it ? I have no clue why its not working

before create container, make empty config file, then start container.
Because container make not file, but folder.

1 Like