Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

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の部分を自分の作ったアプリケーションと同じ名前にしたら問題なく動きました。

gonbee1230
現在就活中の駆け出しコーダです。もし自分に興味を持って下さるのならば、ここに連絡くださいませ。 twitter https://twitter.com/Gonbee_audio
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away