2017-09-15 98 views
0

我在本地机器上安装了Docker Toolbox,我试图运行Ruby命令来执行数据库迁移。我现在用的是泊坞窗工具箱快速启动终端命令行内的下列泊坞窗命令:Docker工具箱:找不到Gemfile,因为Host目录未安装到主目录

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 

在码头工人工具箱,我在我的项目目录中运行这些命令(C:\ project)。

之后做一些研究,看来我需要的地方安装我主机目录我首页目录中。

所以我尝试使用以下多克尔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' 

以下是我在我的搬运工,撰写。 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 

任何帮助将不胜感激!

+0

您是从Windows的Git的Bash或码头快速入门终端上运行呢? –

+0

Docker快速入门终端。 –

回答

1

这个问题是因为你在windows上运行。您需要Docker机器和主机之间的共享文件夹。

Shared folder

以上就是我的Mac上。您可以看到我的/Users在虚拟机中共享为/Users。这意味着,当我做

docker run -v ~/test:/test ... 

将分享/Users/tarun.lalwani/test虚拟机里面/test容器内。现在自VM内部的/Users共享给我的主机,这将完美工作。但是,如果我做

docker run -v /test:/test ... 

那么即使我有我的Mac上/test它不会被共享。因为主机装载路径依赖于Docker主机服务器。

因此,在你的情况下,你应该检查哪个文件夹被共享,然后检查共享的路径。假设C:\/c共享,那么你会使用下面来获取VM内部文件

docker run -v /c/Project:/var/www/html .. 
+0

通过使用docker命令,我将如何配置共享哪个文件夹以及共享的路径?当我运行这些命令时,我实际上想要用'/ c'来共享C:\。 –

+0

你将不得不通过打开VirtualBox,去Docker-machine虚拟机,右键点击 - >设置 - >共享文件夹,然后添加你想要共享的文件夹 –

+0

Ok,所以我进入了VirtualBox并更改了共享文件夹以便设置为“文件夹路径:C:\项目”和“文件夹名称:项目”。当我运行原始命令'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'我还是一样'找不到Gemfile'错误。 –