This image contains the suite of free Perforce Helix Clients.
1.2K
This image contains the suite of free Perforce Helix Clients:
p4admin). Enables system administrators to easily manage and monitor Perforce Helix users and SCM operations.p4merge). Provides graphical three-way merging and side-by-side file comparisons.p4v). Provides access to versioned files through a graphical interface and also includes tools for merging and visualizing code evolution.p4vc). Provides access to all Perforce features and functions as an interface for scripting and automated operations.Download the p4v package from the Perforce website and save it in this directory. Then run:
docker build -t <tag> .
Use the following incantations to run each of the tools within this image. Note that the tools that have graphical interfaces need to be able to open a window on your local X server.
The tools all run as the user p4v within the container but you can tell docker to run the container as another user with the -u switch, as shown in the examples below.
docker run -it --rm \
--name p4admin \
--volume=$HOME/.p4admin:/home/p4v/.p4admin \
--volume=$HOME/.cache:/home/p4v/.cache \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
-u $UID \
hainesr/p4v p4admin
docker run -it --rm \
--name p4merge \
--volume=$HOME/.p4merge:/home/p4v/.p4merge \
--volume=$HOME/.cache:/home/p4v/.cache \
--volume=$(pwd):/opt/work \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
-u $UID \
hainesr/p4v p4merge [args]
Replace [args] with -h for more information.
docker run -it --rm \
--name p4v \
--volume=$HOME/.p4qt:/home/p4v/.p4qt \
--volume=$HOME/.cache:/home/p4v/.cache \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
-u $UID \
hainesr/p4v p4v
docker run -it --rm \
--name p4vc \
--volume=$(pwd):/opt/work \
-u $UID \
hainesr/p4v p4vc [args]
Replace [args] with help for more details.
You can run any other program that is installed in the image by simply calling it as normal. For example, to run bash:
docker run -it --rm hainesr/p4v /bin/bash [args]
Any arguments you specify will be passed to the program you are running as normal.
I like to wrap the commands above in a function so that I can run them as if the tools were installed in my PATH as normal. For example (p4merge):
p4merge() {
docker run -it --rm \
--name p4merge \
--volume=$HOME/.config/p4merge:/home/p4v/.p4merge \
--volume=$HOME/.cache:/home/p4v/.cache \
--volume=$(pwd):/opt/work \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
-u $UID \
hainesr/p4v p4merge "$@"
}
This runs p4merge, passing arguments through as required.
See my dotfiles for more details.
Content type
Image
Digest
sha256:c6fef3658…
Size
287.4 MB
Last updated
almost 11 years ago
docker pull hainesr/p4v