エラー内容
ERROR: for django Cannot start service django: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/usr/src/app/entrypoint.sh\": permission denied": unknown
環境
Mac OS Catalina 10.15.4
経緯
を参考にDjango REST Frameworkの環境を構築していた所、Djangoの環境をDocker上にcomposeしようとしたら以上のエラー内容が出てきたのでメモ用に記事を書いておきます。
状況としては、DjangoとpostgreSQL、nginxのDockerfileを書いた後にentrypoinst.sh
を作成し、DjangoディレクトリのDockerfile
backend/containers/django/Dockerfile
# これ
COPY ./entrypoint.sh /usr/src/app/entrypoint.sh
COPY . /usr/src/app/
# これ
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
のコメントアウトを消して再び
$ docker-compose up -d --build
コマンドを叩くと冒頭のエラーが出ました。
手っ取り早い解決策としては
Error: Starting container process caused “exec: \”/docker-entrypoint.sh\“: permission denied”
この記事を参考にしました。
エラー内容的にも権限が与えられていないのが原因とはわかっていたのですが、早く解決するためにググりました。
結論としてはDjangoディレクトリで
$ chmod 755 entrypoint.sh
で権限を与え、再び
$ docker-compose up -d --build
してあげると無事にDockerfileの変更が反映されます。
Dockerはいざ自分で触ると分からないことが多くて触るだけでも勉強になりますね。