Install Chamber with Docker
Chamber is available on Docker Hub.
linux/arm64
and linux/amd64
targets only.Get (Download) the image
To get (download) the latest version working run:
docker pull techrail/chamber:latest
You may change the tag to get another version which you might prefer. Such as:
docker pull techrail/chamber:v0.4.0-beta
Running the image
Assuming you downloaded the latest
image, the following command should launch the image in the intended way:
docker run \
--mount "type=bind,target=/chamberpath,source=/home/vaibhav/chamberpath" \
-p 8080:24262 techrail/chamber /usr/local/bin/chamber
In the above command, we are trying to run Chamber using Docker with the following setup:
- The port
8080
on localhost will map to the port Chamber listens on, internally. - The image used is
techrail/chamber
which by default would launch thelatest
image. - The path
/home/vaibhav/chamberpath
is bind-mounted at/chamberpath
inside the container.
We have to launch the docker image in that way because of certain differences in the docker specific releases compared to the normal build.
Differences in Docker build from normal build
Docker builds of Chamber have a different binary than the normal build. While you are free to create your own Docker images using the release binaries, the following differences are present in the default docker build we provide:
- Chamber inside docker image always launches on port 24262. You must map an available port from your machine to this one. In the example above, we are using port
8080
to map. - Chamber inside docker image does NOT attempt to launch a browser upon starting a server. Since docker images are typically used in server environments, and most servers are headless (have no display attached to them), it makes sense to not try to launch a web browser on that machine.
- The docker version does not allow you to input the Chamberpath on the login UI. Even if you trick it by sending the request normally, it will always try to search for the Chamberfile inside
/chamberpath
. In the above command example, we are doing a bind mount of the/home/vaibhav/chamberpath
to the intended location inside the docker image. You can do something different here, such as use a volume.
Note: The container storage is ephemeral and you must always provide the mount for /chamberpath
externally. Otherwise, it won’t work.
Apart from the differences listed above, both the normal release binary and the docker binary have the same exact behavior.