diff --git a/crates/bws/README.md b/crates/bws/README.md index 11ea23814..4b6b9b040 100644 --- a/crates/bws/README.md +++ b/crates/bws/README.md @@ -44,3 +44,45 @@ echo 'source <(/path/to/bws completions bash)' >> ~/.bashrc For more detailed documentation, please refer to the [Secrets Manager CLI help article](https://bitwarden.com/help/secrets-manager-cli/). + +### Docker + +You can also use the `bws` CLI with Docker: + + + +```bash +# From the root of the repository, build the Docker image: +docker build -f crates/bws/Dockerfile --no-cache -t bitwarden/bws . + +# Run with Docker: +docker run --rm -it bitwarden/bws --help +``` + +The Docker image is ran with a non-root user named `app`. If you need to pass your config file to +the container, you can use the `-v`/`--volume` flag to mount your local `.bws` directory to the +default location within the container: + +```bash +docker run --rm -it -v "$HOME"/.bws:/home/app/.bws bitwarden/bws --help +``` + +Alternatively, you can use the `BWS_CONFIG_FILE` environment variable to specify the location of the +config file within the container: + +```bash +docker run --rm -it -e BWS_CONFIG_FILE="/path/to/config/file" -v /path/to/config/file:"$BWS_CONFIG_FILE" bitwarden/bws --help +``` + +Or, more concisely: + +```bash +# Set the BWS_CONFIG_FILE environment variable on your host +export BWS_CONFIG_FILE="/path/to/config/file" + +# Pass the BWS_CONFIG_FILE environment variable to the container +docker run --rm -it -e BWS_CONFIG_FILE="$BWS_CONFIG_FILE" -v "$BWS_CONFIG_FILE":"$BWS_CONFIG_FILE" bitwarden/bws --help +``` + +Note that if you want to use identitcal config file paths on your host and in the container, the +parent directory must exist on both.