From 58a023e47710944b0ed26511185a2da9ed2bf6dc Mon Sep 17 00:00:00 2001 From: Gordon Hall Date: Mon, 18 Sep 2017 15:34:26 -0400 Subject: [PATCH] add dockerfile for hacking with docker compose file for local environment --- .gitignore | 6 ++++++ Dockerfile.dev | 25 +++++++++++++++++++++++ docker-compose.yml | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 Dockerfile.dev create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore index 018f44cf4..e7a1f9ac4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ +venv + +# vim swap files +*.swp +*.swo + *.pyc *.pyo *~ diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 000000000..b0fd24b5e --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,25 @@ +FROM debian:9 +LABEL maintainer "gordon@leastauthority.com" +RUN apt-get update +RUN DEBIAN_FRONTEND=noninteractive apt-get -yq upgrade +RUN DEBIAN_FRONTEND=noninteractive apt-get -yq install build-essential python-dev libffi-dev libssl-dev python-virtualenv git +RUN \ + git clone https://github.com/tahoe-lafs/tahoe-lafs.git /root/tahoe-lafs; \ + cd /root/tahoe-lafs; \ + virtualenv --python=python2.7 venv; \ + ./venv/bin/pip install --upgrade setuptools; \ + ./venv/bin/pip install --editable .; \ + ./venv/bin/tahoe --version; +RUN \ + cd /root; \ + mkdir /root/.tahoe-client; \ + mkdir /root/.tahoe-introducer; \ + mkdir /root/.tahoe-server; +RUN /root/tahoe-lafs/venv/bin/tahoe create-introducer --location=tcp:introducer:3458 --port=tcp:3458 /root/.tahoe-introducer +RUN /root/tahoe-lafs/venv/bin/tahoe start /root/.tahoe-introducer +RUN /root/tahoe-lafs/venv/bin/tahoe create-node --location=tcp:server:3457 --port=tcp:3457 --introducer=$(cat /root/.tahoe-introducer/private/introducer.furl) /root/.tahoe-server +RUN /root/tahoe-lafs/venv/bin/tahoe create-client --webport=3456 --introducer=$(cat /root/.tahoe-introducer/private/introducer.furl) --basedir=/root/.tahoe-client --shares-needed=1 --shares-happy=1 --shares-total=1 +VOLUME ["/root/.tahoe-client", "/root/.tahoe-server", "/root/.tahoe-introducer"] +EXPOSE 3456 3457 3458 +ENTRYPOINT ["/root/tahoe-lafs/venv/bin/tahoe"] +CMD [] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..1d23be71a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,49 @@ +version: '2' +services: + client: + build: + context: . + dockerfile: ./Dockerfile.dev + volumes: + - ./misc:/root/tahoe-lafs/misc + - ./integration:/root/tahoe-lafs/integration + - ./src:/root/tahoe-lafs/static + - ./setup.cfg:/root/tahoe-lafs/setup.cfg + - ./setup.py:/root/tahoe-lafs/setup.py + ports: + - "127.0.0.1:3456:3456" + depends_on: + - "introducer" + - "server" + entrypoint: /root/tahoe-lafs/venv/bin/tahoe + command: ["run", "/root/.tahoe-client"] + server: + build: + context: . + dockerfile: ./Dockerfile.dev + volumes: + - ./misc:/root/tahoe-lafs/misc + - ./integration:/root/tahoe-lafs/integration + - ./src:/root/tahoe-lafs/static + - ./setup.cfg:/root/tahoe-lafs/setup.cfg + - ./setup.py:/root/tahoe-lafs/setup.py + ports: + - "127.0.0.1:3457:3457" + depends_on: + - "introducer" + entrypoint: /root/tahoe-lafs/venv/bin/tahoe + command: ["run", "/root/.tahoe-server"] + introducer: + build: + context: . + dockerfile: ./Dockerfile.dev + volumes: + - ./misc:/root/tahoe-lafs/misc + - ./integration:/root/tahoe-lafs/integration + - ./src:/root/tahoe-lafs/static + - ./setup.cfg:/root/tahoe-lafs/setup.cfg + - ./setup.py:/root/tahoe-lafs/setup.py + ports: + - "127.0.0.1:3458:3458" + entrypoint: /root/tahoe-lafs/venv/bin/tahoe + command: ["run", "/root/.tahoe-introducer"]