adam s
adam s

Reputation: 41

Getting "docker: open .env: permission denied." when trying to pass a .env file to docker run

I have no problems running the test "Hello World" image.

But when I try to pass the --env-file variable as part of my docker run command I am getting docker: open .env: permission denied.

I have tried granting full permissions on my .env file but not joy still.

The command I am running is docker run --network host --env-file .env <IMAGE_ID>

Any help appreciated

Upvotes: 4

Views: 7947

Answers (3)

Yiqun Liang Herman
Yiqun Liang Herman

Reputation: 51

To solve this, I removed the snap version of docker using sudo snap remove docker and re-installed the latest version with apt using sudo apt install docker. Optionally, you can also remove snap's bin from PATH export PATH=$(echo $PATH | sed 's/:\/snap\/bin//')

Make sure to run which docker to see if your docker is installed in the right folder - for me it was in /usr/bin.

For some reason, the snap installation of Docker can't read .envs, but the apt-get installation of the "Docker Community Edition" can.

Upvotes: 5

adam s
adam s

Reputation: 41

A clean reinstall of Docker fixed the problem.

Upvotes: 0

Ashok
Ashok

Reputation: 3581

Step 1: Add the current user to the docker group by executing the below command

sudo usermod -aG docker $USER

Step 2: Change the permissions of docker socket which can able to connect to the docker daemon

sudo chmod 666 /var/run/docker.sock

Upvotes: 0

Related Questions