はじめに
Dockerfileからビルドしたイメージを実行したところ、permission denied: unknown.
というエラーになったので、その原因と対処方法を紹介します。
事象
まずは、今回遭遇した事象について解説します。
下記のSonarQubeのリポジトリのファイルを参考にローカルでファイルを用意してDockerイメージをビルドしました。
docker-sonarqube/9/community at 9.8.0 · SonarSource/docker-sonarqube
:whale:SonarQubeinDocker.ContributetoSonarSource/docker-sonarqubedevelopmentbycreatinganaccountonGitHub.
しかし、ビルドしたイメージを実行したところ、下記のようなエラーが発生しました。
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/opt/sonarqube/bin/run.sh": permission denied: unknown.
ERRO[0000] error waiting for container: context canceled
原因
今回の事象の原因としては、Dockerfile内でのchown
などはできていたのですが、そもそもローカルで作成したファイルの実行権限がないことが原因でした。
❯ ls -l
.rw-r--r-- masa staff 2.4 KB Mon Feb 13 19:15:02 2023 Dockerfile
.rw-r--r-- masa staff 2.1 KB Mon Feb 13 19:15:21 2023 run.sh
.rw-r--r-- masa staff 109 B Mon Feb 13 19:15:41 2023 sonar.sh
解決方法
ということで、ローカルからイメージにコピーするファイルに実行権限をつけてあげることで解決しました。
chmod +x run.sh
chmod +x sonar.sh