# First we download an image from the Docker universe # Ubuntu 16.04 # And we will set the Maintainer to be the Eval Demo group FROM ubuntu:16.04 MAINTAINER Eval Demo Group of Perforce Software # Next we need to ensure that the OS package index is updated and we need to # install some packages RUN apt-get update && apt-get install -y wget curl unzip dnsutils # We need to install some Helix packages. So need the public package key RUN wget -q https://package.perforce.com/perforce.pubkey -O - | apt-key add - # Add the Perforce repository to the list of package sources RUN echo 'deb http://package.perforce.com/apt/ubuntu trusty release' > /etc/apt/sources.list.d/perforce.list # Update the package index again RUN apt-get update # Install Helix Versioning Engine RUN apt-get install -y helix-p4d helix-cli # The Linux "perforce" user gets created when you install p4d. The following commands # sets a password for the perforce user. You may want to change it here so that your # installation is a little more secure. RUN echo perforce:perforce | /usr/sbin/chpasswd # Add the perforce user to the sudo group. RUN usermod -G sudo -a perforce RUN mkdir -p /home/perforce/perforce1666 RUN usermod -d /home/perforce perforce RUN chown -R perforce:perforce /home/perforce # Setup a shared volume. This will only work when you have Shared folders enabled in # VMware Workstation or Fusion or VirtualBox. In VMware Fusion the Docker host VM will # need to be configured to mount the shared folder and then it will possible to mount th # shared folder in the container. # Be sure to correctly apply the correct shared folder name below # For example: mine is /Users/perforce/perforce1666 and it is mounted in the same location # in the container. However, this instruction only creates the mount point directory. # Nothing gets mounted until you perform a 'docker run' command with the '-v' parameter. # VOLUME ["/p4/1/"] # Expose port 1666 of the container. You will have to have port forwarding configured in # your VM environment. EXPOSE 1666 # Create the Helix root directory and change ownership to the perforce user # WORKDIR /opt/perforce # RUN mkdir -p /opt/perforce/perforce1666 RUN mkdir -p /p4/1/root RUN touch /p4/1/p4d.log RUN chown -R perforce:perforce /p4 # Setup the server with a config file for p4dctl ADD ./main.conf /etc/perforce/p4dctl.conf.d/ ADD ./start_p4d.sh / RUN chmod 755 /start_p4d.sh RUN chown perforce:perforce /start_p4d.sh # Set the basic environment for Helix ENV NAME="p4d" \ P4CONFIG=".p4config" \ P4ROOT="/p4/1/root" \ P4PORT="1666" \ P4USER="perforce" \ PATH="/bin:/usr/bin:/usr/sbin:/usr/local/bin:/opt/bin:/opt/perforce/bin:" \ P4LOG="/p4/1/p4d.log" USER perforce WORKDIR /home/perforce CMD ["/start_p4d.sh"]