# # This is a docker build file to run the latest version of scorch in a purpose built docker container # The container contains very little else so dont expect bells and whistles, but can be used to run tests # on the creation of jobs rather than running the jobs themselves. # # Make sure you have docker installed # sudo apt install docker.io # docker build --network=host -f Dockerfile-0.2 -t webmarcit/scorch:latest . # docker image ls # docker run --rm -i --net=host webmarcit/scorch:latest # docker exec -it /bin/bash FROM debian LABEL maintainer "marc@webmarcit.com" ENV dir_Scorch /opt/scorch ENV str_Protocol http ENV dir_Location autoscorch.com/downloads ENV str_User scorch ENV str_Group scorch ENV file_Local scorch.tar # add user and group RUN groupadd -r -g 999 ${str_Group} ; \ useradd -r -g ${str_Group} -u 999 ${str_User} # update debian RUN apt-get update # Add a couple of package prereqs RUN apt-get install -y --no-install-recommends \ wget \ curl \ procps \ python3 \ ; # Set a working directory where scorch runs from WORKDIR ${dir_Scorch} # grab the latest version of scorch from the internet RUN wget -O ${file_Local} ${str_Protocol}://${dir_Location}/latest.tar ; \ tar -xf ${file_Local} ; \ rm ${file_Local} # Run the creation of the primary directories RUN mkdir -p -m 770 "${dir_Scorch}/jobs/pending" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/new" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/starting" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/failed" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/fixing" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/deleted" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/running" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/superseded" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/manual" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/completed" ; \ mkdir -p -m 770 "${dir_Scorch}/etc" ; \ mkdir -p -m 770 "${dir_Scorch}/tmp/" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/queued" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/active" ; \ mkdir -p -m 770 "${dir_Scorch}/jobs/archived" ; \ mkdir -p -m 770 "${dir_Scorch}/var/" ; \ mkdir -p -m 770 "${dir_Scorch}/var//log/" ; \ mkdir -p -m 770 "${dir_Scorch}/var//locks/" ; \ echo "root:POWER:ALL" >> ${dir_Scorch}/etc/users ; \ touch ${dir_Scorch}/etc/motd # Change ownership to scorch RUN chown -R ${str_User}:${str_Group} ${dir_Scorch} # Show how to use it #RUN echo "# docker build --network=host -f Dockerfile-0.1 -t webmarcit/scorch:latest ." #RUN echo "# docker image ls" #RUN echo "# docker run --rm -i --net=host webmarcit/scorch:latest" #RUN echo "# docker exec -it /bin/bash" #CMD /opt/scorch/scorch