infra/codestorage/hg-repo-sync

Paddy 2015-10-11 Parent:d8c86bc750ad Child:9cc2f3a01ab5

1:cc08c8ed2128 Go to Latest

infra/codestorage/hg-repo-sync/Dockerfile

Update to be more modular. We now have a more modular approach to running our mercurial servers, and the approach to the individual containers is a bit more modular as well. The hg-repo-sync container now has a few responsibilities: 1. Install Mercurial 2. Create the group that’s going to be writing all our files 3. Create the folders we’ll store files in, and make the new group the owner 4. Define a script that pulls repos from GCS to local disk 5. Define a script that pushes repos to GCS from local disk 6. Define a script that causes a delay between runs This mainly involved breaking the previous run script into a few separate scripts, so they could be invoked individually. This docker container _can_ be used as a standalone image that will keep the local disk in sync with GCS, but it’s more useful as a base image for our other containers to work off of to achieve specialised functionality.

History
paddy@0 1 FROM ubuntu:14.04
paddy@0 2 MAINTAINER Paddy <paddy@secondbit.org>
paddy@0 3
paddy@0 4 RUN apt-get update && apt-get install -y Mercurial wget unzip
paddy@1 5 RUN groupadd -g 2000 committers
paddy@0 6
paddy@1 7 RUN mkdir -p /mounted/repos
paddy@1 8 RUN chown -R root:committers /mounted/repos
paddy@1 9 RUN chmod 0770 /mounted/repos
paddy@0 10
paddy@1 11 VOLUME /mounted
paddy@0 12
paddy@1 13 RUN mkdir -p /tmp/repos
paddy@1 14 RUN chown -R root:committers /tmp/repos
paddy@1 15 RUN chmod 0770 /tmp/repos
paddy@0 16
paddy@1 17 ADD run.sh /usr/local/bin/helpers/run.sh
paddy@1 18 ADD sleep.sh /usr/local/bin/helpers/sleep.sh
paddy@1 19 ADD pull.sh /usr/local/bin/helpers/pull.sh
paddy@1 20 ADD push.sh /usr/local/bin/helpers/push.sh
paddy@1 21 RUN chmod +x /usr/local/bin/helpers/run.sh
paddy@1 22 RUN chmod +x /usr/local/bin/helpers/sleep.sh
paddy@1 23 RUN chmod +x /usr/local/bin/helpers/pull.sh
paddy@1 24 RUN chmod +x /usr/local/bin/helpers/push.sh
paddy@1 25
paddy@1 26 ADD hgrc /usr/local/bin/helpers/mercurial/hgrc
paddy@0 27 RUN wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.zip && unzip google-cloud-sdk.zip && rm google-cloud-sdk.zip
paddy@0 28
paddy@0 29 ENV CLOUDSDK_PYTHON_SITEPACKAGES 1
paddy@0 30 RUN google-cloud-sdk/install.sh --usage-reporting=false --path-update=true --bash-completion=false --rc-path=/.bashrc --disable-installation-options
paddy@0 31 RUN google-cloud-sdk/bin/gcloud --quiet components update pkg-go pkg-python pkg-java preview alpha beta app
paddy@0 32 RUN google-cloud-sdk/bin/gcloud --quiet config set component_manager/disable_update_check true
paddy@0 33 RUN mkdir /.ssh
paddy@0 34 ENV PATH /google-cloud-sdk/bin:$PATH
paddy@0 35 ENV HOME /
paddy@0 36
paddy@1 37 CMD ["/usr/local/bin/helpers/run.sh"]