Dockerfile #1

  • //
  • guest/
  • robert_cowham/
  • p4benchmark/
  • main/
  • Dockerfile
  • View
  • Commits
  • Open Download .zip Download (3 KB)
FROM centos:centos7 as p4bench
MAINTAINER Robert Cowham "[email protected]"

# Common machine configuration (p4bench) - is all that is required for client machines and is
# basis for master machine.

RUN yum update -y; \
    yum install -y net-tools; \
    yum install -y perl; \
    yum install -y sudo; \
    yum install -y wget; \
    echo /usr/local/lib>> /etc/ld.so.conf; \
    echo /usr/lib64>> /etc/ld.so.conf; \
    sed -ie "s/^Defaults[ \t]*requiretty/#Defaults  requiretty/g" /etc/sudoers

RUN yum install -y openssh-server openssh-clients passwd; \
    yum clean all; \
    ssh-keygen -A

# Python 3.6 plus p4python
RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm; \
    yum update; \
    yum install -y python36u python36u-libs python36u-devel python36u-pip; \
    ln -s /usr/bin/python3.6 /usr/bin/python3; \
    ln -s /usr/bin/pip3.6 /usr/bin/pip3;

# Create perforce user with UID to 1000 before p4d installation
RUN useradd --home-dir /p4 --create-home --uid 1000 perforce
RUN echo perforce:perforce | /usr/sbin/chpasswd
RUN cd /usr/local/bin && wget http://ftp.perforce.com/perforce/r18.2/bin.linux26x86_64/p4 && \
    chmod +x /usr/local/bin/p4

RUN echo 'perforce ALL=(ALL) NOPASSWD:ALL'> /tmp/perforce; \
    chmod 0440 /tmp/perforce; \
    chown root:root /tmp/perforce; \
    mv /tmp/perforce /etc/sudoers.d

ADD utils/insecure_ssh_key.pub /tmp
ADD utils/insecure_ssh_key /tmp
ADD utils/setup_ssh.sh /tmp

RUN /bin/bash -x /tmp/setup_ssh.sh && rm /tmp/*ssh*
EXPOSE 22

RUN mkdir -p /p4/benchmark; \
    chown -R perforce:perforce /p4/benchmark

ADD locust_files/requirements.txt /p4/benchmark/

RUN pip3.6 install -r /p4/benchmark/requirements.txt

# ==================================================================
# Dockerfile for master target - builds on the above
FROM p4bench as p4benchmaster

USER root
RUN pip3.6 install ansible 

RUN mkdir /hxdepots /hxmetadata /hxlogs; \
    chown -R perforce:perforce /hx*; \
    mkdir -p /hxdepots/reset; \
    cd /hxdepots/reset; \
    curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh; \
    chmod +x reset_sdp.sh; \
    ./reset_sdp.sh -fast -no_ssl -no_sd

USER perforce
RUN mkdir -p /p4/benchmark/locust_files; \
    mkdir -p /p4/benchmark/ansible

RUN mkdir /p4/bin; \
    cd /p4/bin; \
    curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/log-analyzer/psla/psla/log2sql.py; \
    chmod +x log2sql.py

ADD locust_files/* /p4/benchmark/locust_files/
ADD ansible/* /p4/benchmark/ansible/
ADD run_*.sh /p4/benchmark/
ADD sqlreport.sh /p4/benchmark/
ADD wait_end_bench.sh /p4/benchmark/
ADD del_clients.sh /p4/benchmark/
ADD analyse.sh /p4/benchmark/
ADD hosts /p4/benchmark/
ADD docker_entry_master.sh /p4/benchmark/

USER root
# Change User Description Committed
#1 25529 Robert Cowham Latest copy of files including docker compose setup.
Merging
//guest/robert_cowham/p4benchmark/pb/...
to //guest/robert_cowham/p4benchmark/main/...
//guest/robert_cowham/p4benchmark/pb/Dockerfile
#5 25521 Robert Cowham Install net-tools to get ifconfig.
Expand explanation
#4 25520 Robert Cowham Tidied up.
Created 2 client workspaces
#3 25519 Robert Cowham Basically working
#2 25518 Robert Cowham Got master building
#1 25517 Robert Cowham Docker compose nearly there