databio / bulker

Manager for multi-container computing environments
https://bulker.io
BSD 2-Clause "Simplified" License
24 stars 2 forks source link

Running git in bulker #28

Closed lwaldron closed 4 years ago

lwaldron commented 4 years ago

Can you tell me why git isn't working within my waldronlab/levi manifest? First example below is with native git, then with container git. Using the new Bulker 0.3.0.

Levis-Air:hub.bulker.io lw391$ bulker --version
bulker 0.3.0
Levis-Air:hub.bulker.io lw391$ git pull
Already up-to-date.
Levis-Air:hub.bulker.io lw391$ ls .git
COMMIT_EDITMSG  HEAD        config      hooks       info        objects     refs
FETCH_HEAD  ORIG_HEAD   description index       logs        packed-refs
Levis-Air:hub.bulker.io lw391$ bulker activate levi
Bulker config: /Users/lw391/bulker_config.yaml
Activating bulker crate: levi

bulker-3.2$ git pull
fatal: Not a git repository (or any of the parent directories): .git
bulker-3.2$ ls .git
COMMIT_EDITMSG  HEAD        config      hooks       info        objects     refs
FETCH_HEAD  ORIG_HEAD   description index       logs        packed-refs
bulker-3.2$ cat ~/bulker_config.yaml
bulker:
  volumes: ['/home']
  envvars: ['DISPLAY']
  default_crate_folder: ${HOME}/bulker_crates
  singularity_image_folder: ${HOME}/simages
  container_engine: docker
  default_namespace: bulker
  executable_template: /Users/lw391/Library/Python/2.7/lib/python/site-packages/bulker/templates/docker_executable.jinja2
  build_template: /Users/lw391/Library/Python/2.7/lib/python/site-packages/bulker/templates/docker_build.jinja2
  crates:
    bulker:
      demo:
        default: /Users/lw391/bulker_crates/bulker/demo/default
      bioconductor:
        default: /Users/lw391/bulker_crates/bulker/bioconductor/default
        docker_args: --volume=${HOME}/.local/lib/R:/usr/local/lib/R/host-site-library
      devel:
        docker_args: --volume=${HOME}/.local/lib/Rdev:/usr/local/lib/R/host-site-library
      levi:
        default: /Users/lw391/bulker_crates/bulker/levi/default
nsheff commented 4 years ago

What's your pwd ??

I think it's a volumes issue in your bulker config file. Do you have /Users available? I've never used this on a mac, so I haven't put those in by default.

Try adding /Users into your volumes.

BTW your manifest works fine for me:

bulker load waldronlab/levi
Bulker config: /home/nsheff/Dropbox/env/bulker_config/puma.yaml
Got URL: http://hub.bulker.io/waldronlab/levi.yaml
Loading manifest: 'waldronlab/levi:default'. Activate with 'bulker activate waldronlab/levi:default'.
Commands available: git, emacs
nsheff@:~$ bulker activate waldronlab/levi
Bulker config: /home/nsheff/Dropbox/env/bulker_config/puma.yaml
Activating bulker crate: waldronlab/levi

nsheff@:~$ git
Unable to find image 'samueldebruyn/debian-git:latest' locally
latest: Pulling from samueldebruyn/debian-git
2e5698f08c0a: Pull complete 
a7a83470264f: Pull complete 
2c51fef1aa3d: Pull complete 
Digest: sha256:6fda212f1f62ba382143c797d771dee1f4aa505520c277195de5536f2926309f
Status: Downloaded newer image for samueldebruyn/debian-git:latest
usage: git [--version] [--help] [-C <path>] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
...
nsheff@:~$ cd code/bulker
nsheff@:~/code/bulker$ git pull
Already up-to-date.
nsheff@:~/code/bulker$ which git
/home/nsheff/Dropbox/env/bulker_config/bulker_crates/waldronlab/levi/default/git
nsheff@:~/code/bulker$ 
nsheff commented 4 years ago

The git command is working correctly, it's just not able to access the .git folder... if you run _git, what can you see? That's all the command will see.

lwaldron commented 4 years ago

You were right, I accidentally copied '/home' into my config file, instead of using the default '$HOME' or '/User' (both work). But I have a different problem now:

Levis-Air:~ lw391$ bulker activate waldronlab/levi
Bulker config: /Users/lw391/bulker_config.yaml
Activating bulker crate: waldronlab/levi

bulker-3.2$ cd git/hub.bulker.io/
bulker-3.2$ git pull
No user exists for uid 501
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
bulker-3.2$ _git
Starting interactive docker shell for image 'samueldebruyn/debian-git' and command 'git'
I have no name!@docker-desktop:/Users/lw391/git/hub.bulker.io$ ls .git
COMMIT_EDITMSG  FETCH_HEAD  HEAD  ORIG_HEAD  config  description  hooks  index  info  logs  objects  packed-refs  refs
I have no name!@docker-desktop:/Users/lw391/git/hub.bulker.io$ whoami
whoami: cannot find name for user ID 501
I have no name!@docker-desktop:/Users/lw391/git/hub.bulker.io$ 

Here is my bulker_config.yaml:

bulker:
  volumes: ['/tmp', '$HOME']
  envvars: ['DISPLAY']
  registry_url: http://hub.bulker.io/
  default_crate_folder: ${HOME}/bulker_crates
  singularity_image_folder: ${HOME}/simages
  container_engine: docker
  default_namespace: bulker
  executable_template: templates/docker_executable.jinja2
  shell_template: templates/docker_shell.jinja2
  build_template: templates/docker_build.jinja2
  crates:
    bulker:
      demo:
        default: /Users/lw391/bulker_crates/bulker/demo/default
    bioconductor:
      bioconductor_full:
        default:
          docker_args: --volume=${HOME}/.local/lib/R:/usr/local/lib/R/host-site-library
        devel:
          docker_args: --volume=${HOME}/.local/lib/Rdev:/usr/local/lib/R/host-site-library
      levi:
        default: /Users/lw391/bulker_crates/bulker/levi/default
    waldronlab:
      bioconductor:
        default: /Users/lw391/bulker_crates/waldronlab/bioconductor/default
      levi:
        default: /Users/lw391/bulker_crates/waldronlab/levi/default
nsheff commented 4 years ago

Ok I moved this to a new issue.