dockerについてです。
dockerでrailsの開発環境を構築しようとしているのですが、
docker-compose.ymlにvolumesをしていしているのにファイルがホストとコンテナで共有されていません。
これは私がマウントに関する理解が異なっているのでしょうか?
それともマウントする方法が間違っているのでしょうか?
以下docker-compose.yml
version: '3' services: rails: build: . ports: - "3000:3000" tty: true volumes: - .:/myapp - bundle:/usr/local/bundle depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password ports: - '3306:3306' volumes: - mysql_data:/var/lib/mysql volumes: bundle: mysql_data:
Dockerfile
1FROM ruby:2.6.3 2ENV LANG C.UTF-8 3 4RUN apt-get update 5RUN apt-get install -y node.js 6 7RUN gem install bundler 8 9WORKDIR /tmp 10ADD Gemfile Gemfile 11ADD Gemfile.lock Gemfile.lock 12RUN bundle install 13 14ENV APP_HOME /myapp 15RUN mkdir -p $APP_HOME 16WORKDIR $APP_HOME 17ADD . $APP_HOME
ホストのファイル構成
- Dockerfile - docker-compose.yml - Gemfile - Gemfile.lock
コンテナ内myappディレクトリの中身
- sampleapp ←"rails new"で作成したプロジェクト
railsコンテナの docker inspect の結果を貼ってもらえますか。コンテナ名は ディレクトリ名_rails_1 になっていると思います。
書き込みありがとうございます!
とても長文で書き込み切れないため、おそらく重要であろう前半部分のみ抜粋しました。
不足があれば追記します
{
"Id": "09fc903b63a18dfe8a95c7944bec071805d879c1090909ca56e98bf41841c048",
"Created": "2019-08-13T16:04:03.569323718Z",
"Path": "irb",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 26257,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-08-13T16:04:04.128938724Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:aa19f1a5bac5db55254c4852d062361f482cd984237f84196c8b865063052cc8",
"ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/09fc903b63a18dfe8a95c7944bec071805d879c1090909ca56e98bf41841c048/resolv.conf",
"HostnamePath": "/mnt/sda1/var/lib/docker/containers/09fc903b63a18dfe8a95c7944bec071805d879c1090909ca56e98bf41841c048/hostname",
"HostsPath": "/mnt/sda1/var/lib/docker/containers/09fc903b63a18dfe8a95c7944bec071805d879c1090909ca56e98bf41841c048/hosts",
"LogPath": "/mnt/sda1/var/lib/docker/containers/09fc903b63a18dfe8a95c7944bec071805d879c1090909ca56e98bf41841c048/09fc903b63a18dfe8a95c7944bec071805d879c1090909ca56e98bf41841c048-json.log",
"Name": "/dockertest_rails_1",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": [
"c47f8d4f03977adbb2527ca0fda5ed2607cd3c086268c9d8f28c8a984f284f14"
],
"HostConfig": {
"Binds": [
"/c/Users/bellw/workspace/dockerTest:/myapp:rw",
"dockertest_bundle:/usr/local/bundle:rw"
],
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "dockertest_default",
"PortBindings": {
"3000/tcp": [
{
"HostIp": "",
"HostPort": "3000"
}
]
},
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
おお、Windows ですね。docker for windows でしょうか?それともWSL?
Windows 固有の問題の可能性が高いので、動作環境について詳しい情報を記載していただく必要があると思います。docker クライアントとホストとなるVMの詳しい情報を記載してください。
上記 inspect の結果も含めて、コメントではなく、質問を編集していただくほうがいいです。
WSLでdockerはサポートされてません。(WSL2でサポートされる予定)
使っているとすればDocker for WindowsかDocker Toolboxだと思います。
本来であればそのへんをハッキリさせるために利用環境の情報は質問文になるべく詳細に記載するべきです。(質問テンプレートにもあるし)
https://teratail.com/help/question-tips#questionTips3-6
すみません説明不足でした
OSはwindows10で
docker toolboxを使っています
回答4件
あなたの回答
tips
プレビュー