docker-compose up -d でsh: 0: Can't openと出たときに解決した時の備忘録。
2940 ワード
docker-composeでシェルを動かす時にsh: 0: Can't openと出てきた時に確認する事
qiita記事Vue.js & Django を Docker と組み合わせてSPA+APIサーバー環境をつくる
今回はこの記事を参考にしてdockerを使って環境構築を進めていきます。
そこでタイトルの通り sh: 0: Can't open というerrorが頻発したのでそれの解決方法をまとめていきます。
- そもそもdokercontainerに起動するファイルが入っていない。
- volumesのパスが間違っている。
のどちらかだと思います。
1.そもそもdokercontainerに起動するファイルが入っていない。
原因の確認方法として
$ docker ps -a
でコンテナidを確認
$ docker commit -m exited コンテナid sh
でコンテナ名を取得
$ docker run --rm -it コンテナ名 sh
でコンテナ内に移動
移動後
$ ls
コマンドでファイルを確認。
で自分が移したいファイルがちゃんとコンテナ内にあるか確認。移っていなかったら、dockerfileを再確認。
2. volumesのパスが間違っている。
docker-compose.yml
---------以下略---------
volumes:
- docker-compose.ymlから移したいファイルの相対パス:dockercontainerの絶対パス
-----------------------
ここの設定がまちがえていると動きませんでした。
自分の場合は
docker-compose.yml
version: '3'
services:
front:
build:
context: .
dockerfile: ./Dockerfile/front/Dockerfile
command: sh /app/start.sh
volumes:
- ./front:/app/:cached
- ./front/node_modules:/app/node_modules
ports:
- "8080:8080"
このようなファイルを作って動かしていましたがエラーの連続でしたが
volumesのfrontの部分を自分の作ったアプリケーションと同じ名前にしたら問題なく動きました。
Author And Source
この問題について(docker-compose up -d でsh: 0: Can't openと出たときに解決した時の備忘録。), 我々は、より多くの情報をここで見つけました https://qiita.com/gonbee1230/items/04196e885e6a59e15e5e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .