diff --git a/0-base/Dockerfile b/0-base/Dockerfile index 70efb75..f2ae689 100644 --- a/0-base/Dockerfile +++ b/0-base/Dockerfile @@ -1,6 +1,9 @@ FROM python:3.6 -ADD . /app -RUN cd /app && pip install -r requirements.txt +WORKDIR /app + +ADD . . + +RUN pip install -r requirements.txt ENTRYPOINT ["python", "/app/app.py"] diff --git a/2-optimize-dockerfile/Dockerfile b/2-optimize-dockerfile/Dockerfile new file mode 100644 index 0000000..eac547a --- /dev/null +++ b/2-optimize-dockerfile/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3.6 + +WORKDIR /app + +ADD requirements.txt . +RUN pip install -r requirements.txt + +ADD . . + +ENTRYPOINT ["python", "/app/app.py"] diff --git a/2-optimize-dockerfile/Tiltfile b/2-optimize-dockerfile/Tiltfile new file mode 100644 index 0000000..80b2cc6 --- /dev/null +++ b/2-optimize-dockerfile/Tiltfile @@ -0,0 +1,13 @@ +# -*- mode: Python -*- + +# Records the current time, then kicks off a server update. +# Normally, you would let Tilt do deploys automatically, but this +# shows you how to set up a custom workflow that measures it. +local_resource( + 'deploy', + 'date +%s%N > start-time.txt', +) + +docker_build('example-python-image', '.') +k8s_yaml('kubernetes.yaml') +k8s_resource('example-python', port_forwards=8000, resource_deps=['deploy']) diff --git a/2-optimize-dockerfile/app.py b/2-optimize-dockerfile/app.py new file mode 100644 index 0000000..406449c --- /dev/null +++ b/2-optimize-dockerfile/app.py @@ -0,0 +1,26 @@ +import time + +from flask import Flask, render_template +app = Flask(__name__) + +UPDATE_TIME = 'N/A' + + +def get_update_time_secs() -> float: + with open('/app/start-time.txt', 'r') as file: + start_ns_since_epoch = float(file.read().strip()) + + start_secs_since_epoch = start_ns_since_epoch / 10**9 + now_secs_since_epoch = time.time() + + return round(now_secs_since_epoch - start_secs_since_epoch, 2) + + +@app.route("/") +def serve(): + return render_template("index.html", time=UPDATE_TIME) + + +if __name__ == "__main__": + UPDATE_TIME = get_update_time_secs() + app.run(port=8000) diff --git a/2-recommended/kubernetes.yaml b/2-optimize-dockerfile/kubernetes.yaml similarity index 100% rename from 2-recommended/kubernetes.yaml rename to 2-optimize-dockerfile/kubernetes.yaml diff --git a/2-recommended/requirements.txt b/2-optimize-dockerfile/requirements.txt similarity index 100% rename from 2-recommended/requirements.txt rename to 2-optimize-dockerfile/requirements.txt diff --git a/2-recommended/static/pets.png b/2-optimize-dockerfile/static/pets.png similarity index 100% rename from 2-recommended/static/pets.png rename to 2-optimize-dockerfile/static/pets.png diff --git a/2-optimize-dockerfile/templates/index.html b/2-optimize-dockerfile/templates/index.html new file mode 100644 index 0000000..bdc69e7 --- /dev/null +++ b/2-optimize-dockerfile/templates/index.html @@ -0,0 +1,10 @@ + + +
+
+