Docker工具箱:由于Host目录没有安装到Home目录,找不到Gemfile
我有我的本地机器上安装Docker工具箱,我试图运行Ruby命令来执行数据库迁移。 我在Docker Toolbox快速入门terminal命令行中使用以下docker命令:
docker-compose run app /usr/local/bin/bundle exec rake db:migrate docker-compose run app bundle exec rake db:create RAILS_ENV=production docker-compose run app /usr/local/bin/bundle exec rake db:seed
但是,这些命令被调用后,我得到以下错误:
Could not locate Gemfile or .bundle/ directory
在Docker Toolbox中,当我运行这些命令(C:\ project)时,我位于项目的目录中。
在做了一些研究之后,看起来我需要将我的主目录安装在我的主目录中。
所以我尝试使用下面的Docker Mount命令:
docker run --mount /var/www/docker_example/config/containers/app.sh:/usr/local/bin docker run --mount /var/www/docker_example/config/containers/app.sh:/c/project
这两个命令都给我以下错误:
invalid argument "/var/www/docker_example/config/containers/app.sh:/usr/local/bin" for --mount: invalid field '/var/www/docker_example/config/containers/app.sh:/usr/local/bin' must be a key=value pair See 'docker run --help'
这是我在我的docker-compose.yml文件中:
泊坞窗,compose.yml:
app: build: . command: /var/www/docker_example/config/containers/app.sh volumes: - C:\project:/var/www/docker_example expose: - "3000" - "9312" links: - db tty: true
任何帮助将不胜感激!
这个问题是因为你在windows上运行。 您需要Docker机器和主机之间的共享文件夹。
以上是在我的Mac上。 你可以看到我的/Users
被共享为VM里的/Users
。 这意味着当我这样做
docker run -v ~/test:/test ...
它将在VM内共享/Users/tarun.lalwani/test
以在容器内进行/test
。 现在因为/Users
虚拟机内的/Users
共享到我的主机,这将完美的工作。 但是,如果我这样做
docker run -v /test:/test ...
然后,即使我有/test
在我的Mac它不会被分享。 因为主机装载path依赖于Docker主机服务器。
所以在你的情况下,你应该检查哪个文件夹是共享的,然后分享到哪个path。 假设C:\
在/c
共享那么你可以使用下面的方式来获取虚拟机内的文件
docker run -v /c/Project:/var/www/html ..