github.com/pachyderm/pachyderm@v1.13.4/doc/docs/master/contributing/windows.md (about)

     1  # Developing Pachyderm in Windows with VSCode
     2  
     3  ## Install
     4  
     5  * [go v1.15.x+](https://golang.org/dl/)
     6  * [VSCode](https://code.visualstudio.com/download)
     7  * [git](https://git-scm.com/download/win)
     8  * [docker toolbox](https://github.com/docker/toolbox/releases)
     9  * [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/#install-minikube-using-an-installer-executable)
    10  * [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
    11  * [goreleaser](https://github.com/goreleaser/goreleaser/releases)
    12  * [jq](https://stedolan.github.io/jq/download/)
    13  * [make](http://gnuwin32.sourceforge.net/packages/make.htm)
    14  * [shellcheck](https://github.com/koalaman/shellcheck#user-content-installing)
    15  
    16  You will need one of the following, which is used by minikube as its virtualization backend:
    17  * [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
    18  * [HyperV](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)
    19  
    20  ## Configure
    21  
    22  Add any VSCode extensions you may need for development, like `go` and `docker`.
    23  
    24  Configure your terminal (opened via `` ctrl+` ``) to use `git bash` instead of `cmd`.  Add the following to your `settings.json` (depending on where your `git bash` actually exists):
    25  ```
    26    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
    27  ```
    28  
    29  ## Getting started
    30  
    31  * Clone the `pachyderm` repo into a local folder
    32    * In your terminal, run `git clone https://github.com/pachyderm/pachyderm`
    33  * Launch the Docker Quickstart Terminal
    34    * This should show up in your start menu if you search 'docker'
    35    * You may need to do this any time your computer restarts
    36  * Start minikube 
    37   * If using the hyperv driver:
    38    * `minikube start --memory=10000mb --cpus=4 --disk-size=40000mb --driver=hyperv`
    39   * If using virtualbox:
    40    * `minikube start --memory=10000mb --cpus=4 --disk-size=40000mb`
    41   * The memory value can be tweaked, but I found the default (1 GB) to be too low for pachyderm compilation
    42   * The disk value can also be tweaked, occasionally you will have to prune the docker cache, which is responsible for most of the disk usage
    43  * Pull relevant docker variables into your shell
    44    * `eval $(minikube docker-env --shell bash)`
    45    * This is only necessary if you want to run docker commands in a shell
    46  * Build pachyderm `pachd` and `worker` images
    47    * Run the task `docker-build`
    48    * This can be done through the "Terminal > Run Task..." option, or by hitting `ctrl-p` and typing `task docker-build`
    49  * Build and install pachctl and launch a pachyderm cluster
    50    * Run the task `launch-dev`
    51    * If the service does not come up promptly (the script never says all the pods are ready), you should check the 'Debugging' section below.
    52  
    53  ## Debugging
    54  
    55  Determining the source of an error when launching a local pachyderm cluster can be difficult.  Some useful commands to get you started:
    56  
    57  * `kubectl get all` - lists resources in the 'default' namespace (where we deploy locally)
    58  * `kubectl logs -p <pod>` - gets the logs from the previous attempt at running a pod (usually this is where you will find errors)
    59  * `minikube logs` - gets the logs from minikube itself, this may be useful if a pod ran into a `CreateContainerError`
    60  * `docker container ls` - lists recently used or in-use docker containers, can be used to get logs more directly
    61  * `docker logs <container>` - gets the logs from a specific docker container
    62  
    63  ### Past problems
    64  
    65  For posterity's sake, here are some of the problems I've encountered when trying to get this working in Windows:
    66  
    67  * Docker gets confused by command-line windows-style paths, it thinks the ':' is indicating a 'mode' and fails to parse.  In addition, Windows (or maybe bash) seems to automatically convert unix to windows-style paths, so you should export MSYS_NO_PATHCONV=1 to prevent this.
    68  * Kubernetes resource specs (specifically `hostPath`) do not work if you use a windows-style path.  Instead, you must use a unix-style path where the drive letter is the first directory, e.g. '/C/path/to/file'.
    69  * Etcd failed to mmap a file because it was in a directory shared with the host system.  Still not sure how I fixed this because it seems to be working now?
    70  
    71  ### Nuclear option
    72  
    73  If your setup is completely fucked, it may be worthwhile to blow away your minikube and start over, this is pretty simple with:
    74  
    75  ```
    76  minikube delete
    77  minikube start --memory=10000mb --cpus=4 --disk-size=40000mb
    78  ```