LoginSignup
1
1

More than 3 years have passed since last update.

docker-compose up -d でsh: 0: Can't openと出たときに解決した時の備忘録。

Posted at

docker-composeでシェルを動かす時にsh: 0: Can't openと出てきた時に確認する事

qiita記事Vue.js & Django を Docker と組み合わせてSPA+APIサーバー環境をつくる
今回はこの記事を参考にしてdockerを使って環境構築を進めていきます。

そこでタイトルの通り sh: 0: Can't open というerrorが頻発したのでそれの解決方法をまとめていきます。

  1. そもそもdokercontainerに起動するファイルが入っていない。
  2. 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の部分を自分の作ったアプリケーションと同じ名前にしたら問題なく動きました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1