Skip to content

chore(README.md): add instructions for local iteration without a Git repo #342

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

Merged
merged 4 commits into from
Sep 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ docker run -it --rm \
Edit `.devcontainer/Dockerfile` to add `htop`:

```bash
$ vim .devcontainer/Dockerfile
vim .devcontainer/Dockerfile
```

```diff
Expand All @@ -53,6 +53,39 @@ Exit the container, and re-run the `docker run` command... after the build compl
> If you need to bypass this behavior for any reason, you can bypass this safety check by setting
> `ENVBUILDER_FORCE_SAFE=true`.
If you don't have a remote Git repo or you want to quickly iterate with some
local files, simply omit `ENVBUILDER_GIT_URL` and instead mount the directory
containing your code to `/workspaces/empty` inside the Envbuilder container.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is empty a magic name here? Or does any name work?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to also mention ENVBUILDER_WORKSPACE_FOLDER.


For example:

```shell
# Create a sample Devcontainer and Dockerfile in the current directory
printf '{"build": { "dockerfile": "Dockerfile"}}' > devcontainer.json
printf 'FROM debian:bookworm\nRUN apt-get update && apt-get install -y cowsay' > Dockerfile

# Run envbuilder with the current directory mounted into `/workspaces/empty`.
# The instructions to add /usr/games to $PATH have been omitted for brevity.
docker run -it --rm -e ENVBUILDER_INIT_SCRIPT='bash' -v $PWD:/workspaces/empty ghcr.io/coder/envbuilder:latest
```

Alternatively, if you prefer to mount your project files elsewhere, tell
Envbuilder where to find them by specifying `ENVBUILDER_WORKSPACE_FOLDER`:

```shell
docker run -it --rm -e ENVBUILDER_INIT_SCRIPT='bash ' -e ENVBUILDER_WORKSPACE_FOLDER=/src -v $PWD:/src ghcr.io/coder/envbuilder:latest
```

By default, Envbuilder will look for a `devcontainer.json` or `Dockerfile` in
both `${ENVBUILDER_WORKSPACE_FOLDER}` and `${ENVBUILDER_WORKSPACE_FOLDER}/.devcontainer`.
You can control where it looks with `ENVBUILDER_DEVCONTAINER_DIR` if needed.

```shell
ls build/
Dockerfile devcontainer.json
docker run -it --rm -e ENVBUILDER_INIT_SCRIPT='bash' -e ENVBUILDER_DEVCONTAINER_DIR=build -v $PWD:/src ghcr.io/coder/envbuilder:latest
```

## Usage with Coder

Coder provides sample
Expand Down