tailhook / vagga

Vagga is a containerization tool without daemons
http://vagga.readthedocs.org
MIT License
1.86k stars 96 forks source link

Error parsing configuration file on trying to run vagga command #434

Closed ghost closed 7 years ago

ghost commented 7 years ago

debian-stretch installed vagga from ubuntu repo (tried with bot stable and testing releases)

vagga.yml:

---
containers:
  alp:
    setup:
      - !Ubuntu xenial
      - !Install [curl]

commands:
  alp: !Command
    container: alp
    run: /bin/bash
$ vagga alp
thread 'main' panicked at 'Error parsing configuration file', /checkout/src/libcore/option.rs:794
note: Run with `RUST_BACKTRACE=1` for a backtrace.
ERROR:vagga::wrapper: Error executing _build: Versioner exited exited with code 101
Command <Command "/proc/self/exe" "__wrapper__" "_build" "alp"; environ[3]; uid_map=[UidMap { inside_uid: 0, outside_uid: 1000, count: 1 }, UidMap { inside_uid: 1, outside_uid: 1258512, count: 65535 }]; gid_map=[GidMap { inside_gid: 0, outside_gid: 1000, count: 1 }, GidMap { inside_gid: 1, outside_gid: 1258512, count: 65535 }]> exited with code 124

this wasn't always a problem on debian9 i can't recall when/what introduced this error

i'm pretty sure i did something stupid, cannot find out what though.

setting RUST_BACKTRACE=1 doesn't really provide any more info

ghost commented 7 years ago

tried to change the vagga.yml a bit, no luck

$ RUST_LOG=debug vagga alp
INFO:vagga::process_util: Running "id" "-u" "-n"
INFO:vagga::process_util: Running "exe" "__wrapper__" "_build" "ubunter-xenial"
DEBUG:vagga::container::mount: Procfs mount "/home/kon/.vagga/.mnt/proc"
DEBUG:vagga::container::mount: Pseusofs mount "/home/kon/.vagga/.mnt/dev/pts" devpts newinstance
INFO:vagga::process_util: Running "vagga" "__version__" "ubunter-xenial" "--settings" "{\"version_check\":true,\"proxy_env_vars\":true,\"ubuntu_mirror\":\"http://gr.archive.ubuntu.com/ubuntu\",\"alpine_mirror\":null,\"uid_map\":null,\"push_image_script\":null,\"build_lock_wait\":false,\"auto_apply_sysctl\":false,\"environ\":{},\"index_all_images\":false,\"hard_link_identical_files\":false,\"run_symlinks_as_commands\":true,\"disable_auto_clean\":false,\"storage_subdir_from_env_var\":null}"
thread 'main' panicked at 'Error parsing configuration file', /checkout/src/libcore/option.rs:794
note: Run with `RUST_BACKTRACE=1` for a backtrace.
ERROR:vagga::wrapper: Error executing _build: Versioner exited exited with code 101
Command <Command "/proc/self/exe" "__wrapper__" "_build" "ubunter-xenial"; environ[3]; uid_map=[UidMap { inside_uid: 0, outside_uid: 1000, count: 1 }, UidMap { inside_uid: 1, outside_uid: 1258512, count: 65535 }]; gid_map=[GidMap { inside_gid: 0, outside_gid: 1000, count: 1 }, GidMap { inside_gid: 1, outside_gid: 1258512, count: 65535 }]> exited with code 124
tailhook commented 7 years ago

Can you show your version of vagga? Current master runs vagga alp with this config just fine.

ghost commented 7 years ago
↳ apt show vagga
Package: vagga
Version: 0.7.2-52-gfd99e37-1
Priority: extra
Section: checkinstall
Maintainer: paul@colomiets.name
Installed-Size: 52.2 MB
Provides: vagga
Depends: uidmap
Download-Size: 8,405 kB
APT-Sources: https://ubuntu.zerogw.com vagga-testing/main amd64 Packages
Description: A containerisation tool without daemons

also built with latest master with these instructions i still get the panic.

anti-social commented 7 years ago

I can reproduce that error. You have 2 configuration files: one inside your working directory and the other inside .vagga directory. .vagga/vagga.yaml is ok but vagga.yaml is broken. Internal vagga commands don't read .vagga/vagga.yaml file and don't print detailed errors when config is broken.

I will fix this as soon as I can.

ghost commented 7 years ago

actually i don't have a ~/.vagga/vagga.yaml, also if i add a ~/.vagga/vagga.yaml it ignores the vagga.yaml in the wokring directory

ghost commented 7 years ago

cleared my ~/.vagga and rebuilt everything and it works. i can now reproduce with just moving vagga.yaml from pwd to ~/.vagga/

$ pwd
/home/kon
$ cat vagga.yaml
containers:
  alpine:
    setup:
    - !Alpine v3.5
    - !Install 
      - bash
      - python3

commands:
  alp: !Command
    container: alpine
    run: /bin/sh
$ ls .vagga
alpine  settings.yaml 
$ vagga alp
/work # exit
$ mv vagga.yaml .vagga
$ vagga alp
thread 'main' panicked at 'Error parsing configuration file', /checkout/src/libcore/option.rs:794
note: Run with `RUST_BACKTRACE=1` for a backtrace.
ERROR:vagga::wrapper: Error executing _build: Versioner exited exited with code 101
Command <Command "/proc/self/exe" "__wrapper__" "_build" "alpine"; environ[3]; uid_map=[UidMap { inside_uid: 0, outside_uid: 1000, count: 1 }, UidMap { inside_uid: 1, outside_uid: 1258512, count: 65535 }]; gid_map=[GidMap { inside_gid: 0, outside_gid: 1000, count: 1 }, GidMap { inside_gid: 1, outside_gid: 1258512, count: 65535 }]> exited with code 124
tailhook commented 7 years ago

That's an interesting case. We're fixing the in #435.

But why do you put vagga.yaml in your home? We usually put it inside the project repository.

ghost commented 7 years ago

tbh i thought that was the standard usage, but i start to understand now how i am supposed to use vagga :)

will test again with latest master and see if this is fixed.

thanks for the info and your time!

tailhook commented 7 years ago

Okay. #435 is merged in, so I'm closing this issue.