Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid characters for a local volume name #6

Open
estahn opened this issue Apr 3, 2017 · 6 comments
Open

Invalid characters for a local volume name #6

estahn opened this issue Apr 3, 2017 · 6 comments

Comments

@estahn
Copy link

estahn commented Apr 3, 2017

Dockerspec Version

0.4.1

Ruby Version

2.4.0

Platform Details

Mac

Scenario

Run dockerspec with docker-compose.

Steps to Reproduce

Dockerfile

version: '2'

services:
  static-images:
    image: nginx:1.10-alpine
    ports:
      - "8080:80"
    volumes:
       - ../images:/usr/share/nginx/html:ro

spec:

  describe docker_compose('spec/docker-compose/default.yml', wait: 30) do
    its_container(:thumbor) do
      describe file('/etc/thumbor.conf') do
        it { should be_file }
        its(:content) { should_not be_empty }
      end
    end
  end

Expected Result

Run as documented

Actual Result

/Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-api-1.33.2/lib/docker/connection.rb:50:in `rescue in request': create ../images: "../images" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intented to pass a host directory, use absolute path (Docker::Error::ServerError)
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-api-1.33.2/lib/docker/connection.rb:38:in `request'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-api-1.33.2/lib/docker/connection.rb:65:in `block (2 levels) in <class:Connection>'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-api-1.33.2/lib/docker/container.rb:337:in `create'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-compose-api-1.1.2/lib/docker-compose/models/compose_container.rb:92:in `prepare_container'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-compose-api-1.1.2/lib/docker-compose/models/compose_container.rb:206:in `start'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-compose-api-1.1.2/lib/docker-compose/models/compose.rb:117:in `block in call_container_method'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-compose-api-1.1.2/lib/docker-compose/models/compose.rb:116:in `each'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-compose-api-1.1.2/lib/docker-compose/models/compose.rb:116:in `call_container_method'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/docker-compose-api-1.1.2/lib/docker-compose/models/compose.rb:70:in `start'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:198:in `do_start'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:50:in `block in initialize'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:50:in `chdir'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:50:in `initialize'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/specinfra-2.67.7/lib/specinfra/backend/base.rb:8:in `new'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/specinfra-2.67.7/lib/specinfra/backend/base.rb:8:in `instance'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine/specinfra/backend.rb:131:in `backend_instance'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine/specinfra/backend.rb:58:in `save'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine/specinfra.rb:72:in `when_running'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:147:in `block in call_engines_method'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:147:in `map'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:147:in `call_engines_method'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:102:in `when_running'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/runner/base.rb:230:in `when_running'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/runner/compose.rb:116:in `run'
	from /Users/estahn/.rvm/gems/ruby-2.4.0/gems/dockerspec-0.4.1/lib/dockerspec/rspec/resources.rb:436:in `docker_compose'
	from /Users/estahn/Projects/hipages/docker-thumbor/images/6.3/spec/thumbor_spec.rb:43:in `block in <top (required)>'
@estahn estahn changed the title Issue Invalid characters for a local volume name Apr 3, 2017
@estahn
Copy link
Author

estahn commented Apr 3, 2017

Reference: mauricioklein/docker-compose-api#33

@estahn
Copy link
Author

estahn commented Apr 3, 2017

Workaround:

spec file

require 'dockerspec/infrataster'
require 'fastimage'

Infrataster::Server.define('app', '127.0.0.1')
`find spec/docker-compose -type f -name "*.tpl.yml" | xargs -I% -n1 /bin/bash -c 'envsubst < % > $(dirname %)/$(basename % .tpl.yml).yml'`

docker-compose.tpl.yml:

version: '2'

services:
  images:
    image: nginx:1.10-alpine
    volumes:
       - $PWD/spec/images:/usr/share/nginx/html

@zuazo
Copy link
Owner

zuazo commented Apr 4, 2017

@estahn thanks for all your reports 😉

@zuazo
Copy link
Owner

zuazo commented Apr 4, 2017

I'm going to leave this issue open, but if I understand the problem correctly, this should be fixed in the docker-compose-api gem.

@sergeyklay
Copy link

@zuazo

As I can see the docker-compose-api gem has been released today. Could you please take a look. Is issue still actual?

Cc: @estahn

@zuazo
Copy link
Owner

zuazo commented Apr 18, 2017

Thanks @sergeyklay.

Unfortunately the error still seems to prevail. But I'm not sure if it is a docker-compose-api or docker-api gem problem.

Tested with docker-api@1.33.4 and docker-compose-api@1.1.5:

/home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-api-1.33.4/lib/docker/connection.rb:50:in `rescue in request': create ../images: "../images" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intented to pass a host directory, use absolute path (Docker::Error::ServerError)
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-api-1.33.4/lib/docker/connection.rb:38:in `request'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-api-1.33.4/lib/docker/connection.rb:65:in `block (2 levels) in <class:Connection>'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-api-1.33.4/lib/docker/container.rb:338:in `create'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-compose-api-1.1.5/lib/docker-compose/models/compose_container.rb:94:in `prepare_container'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-compose-api-1.1.5/lib/docker-compose/models/compose_container.rb:219:in `start'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-compose-api-1.1.5/lib/docker-compose/models/compose.rb:117:in `block in call_container_method'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-compose-api-1.1.5/lib/docker-compose/models/compose.rb:116:in `each'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-compose-api-1.1.5/lib/docker-compose/models/compose.rb:116:in `call_container_method'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/docker-compose-api-1.1.5/lib/docker-compose/models/compose.rb:70:in `start'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:198:in `do_start'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:50:in `block in initialize'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:50:in `chdir'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/specinfra-backend-docker_compose-0.1.0/lib/specinfra/backend/docker_compose.rb:50:in `initialize'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/specinfra-2.67.8/lib/specinfra/backend/base.rb:8:in `new'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/specinfra-2.67.8/lib/specinfra/backend/base.rb:8:in `instance'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine/specinfra/backend.rb:131:in `backend_instance'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine/specinfra/backend.rb:58:in `save'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine/specinfra.rb:72:in `when_running'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:147:in `block in call_engines_method'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:147:in `map'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:147:in `call_engines_method'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/engine_list.rb:102:in `when_running'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/runner/base.rb:230:in `when_running'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/runner/compose.rb:116:in `run'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/dockerspec-0.4.1/lib/dockerspec/rspec/resources.rb:436:in `docker_compose'
        from /home/dockertests/tmp/spec/test_spec.rb:3:in `<top (required)>'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `load'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `each'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `load_spec_files'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100:in `setup'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in `run'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/gems/rspec-core-3.5.4/exe/rspec:4:in `<top (required)>'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/bin/rspec:22:in `load'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/bin/rspec:22:in `<main>'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/bin/ruby_executable_hooks:15:in `eval'
        from /home/dockertests/.rvm/gems/ruby-2.4.0@tmp/bin/ruby_executable_hooks:15:in `<main>'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants