You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/docker
Jeff Mitchell bc565922fb
Prep for release
5 years ago
..
Dev.dockerfile feat: add official Dockerfile for Boundary (#755) 5 years ago
README.md feat: add official Dockerfile for Boundary (#755) 5 years ago
Release.dockerfile Prep for release 5 years ago
config.hcl Allow public_cluster_addr to use an env var or file (#907) 5 years ago

README.md

Boundary Docker Image

This directory contains the officially supported HashiCorp Dockerfile to build the hashicorp/boundary docker image.

Build

See the Makefile targets in the root of this repository for building and publishing this image in either development or release modes:

  • make docker-build-dev
  • make docker-build
  • make docker

Usage

Dev Mode

Due to the limitations of boundary dev running and maintaining a postgres docker container, it's not recommended to run dev mode inside docker. To do so will require knowledge of running docker-in-docker, and the caveats associated with it.

Default Configuration

The default behavior of the Boundary docker image is to run boundary server -config /boundary/config.hcl. The default configuration can be found in this directory and it's highly recommended that end users replace this configuration with one that suites their environment.

Postgres

The usage instructions in this README assume you have an external postgres database (version 11 or greater) to run boundary server with. If you want to get started quickly, you can start a local postgres in docker:

docker run -it -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres postgres

The postgres URL setting is defined with env://BOUNDARY_POSTGRES_URL so it can be easily overidden with -e during docker run:

docker run <truncated> -e 'BOUNDARY_POSTGRES_URL=postgresql://postgres:postgres@0.0.0.0:5432/postgres?sslmode=disable' <truncated>

Database Init

If you're starting with a new, unused postgres instance, initialize the database using the default config.hcl:

docker run \
  --network host \
  -e 'BOUNDARY_POSTGRES_URL=postgresql://postgres:postgres@0.0.0.0:5432/postgres?sslmode=disable' \
  boundary database init -config /boundary/config.hcl

If you want to run this with your own config.hcl (assuming config.hcl is located at $(pwd)/config.hcl):

docker run \
  --network host \
  -e 'BOUNDARY_POSTGRES_URL=postgresql://postgres:postgres@0.0.0.0:5432/postgres?sslmode=disable' \
  -v "$(pwd)":/boundary/ \
  boundary database init -config /boundary/config.hcl

Server

Start a Boundary server using the default config.hcl:

docker run \
  --network host \
  -p 9200:9200 \
  -p 9201:9201 \
  -p 9202:9202 \
  -e 'BOUNDARY_POSTGRES_URL=postgresql://postgres:postgres@0.0.0.0:5432/postgres?sslmode=disable' \
  boundary

Start a Boundary server using your own config.hcl, assuming it's located at $(pwd)/config.hcl:

docker run \
  --network host \
  -p 9200:9200 \
  -p 9201:9201 \
  -p 9202:9202 \
  -v "$(pwd)":/boundary/ \
  -e 'BOUNDARY_POSTGRES_URL=postgresql://postgres:postgres@0.0.0.0:5432/postgres?sslmode=disable' \
  boundary