diff --git a/samples/nginx-flask-mongo/docker-compose.yaml b/samples/nginx-flask-mongo/docker-compose.yaml new file mode 100644 index 0000000..a16019f --- /dev/null +++ b/samples/nginx-flask-mongo/docker-compose.yaml @@ -0,0 +1,23 @@ +version: "3" +services: + web: + image: nginx + volumes: + - ./nginx/nginx.conf:/tmp/nginx.conf + environment: + - FLASK_SERVER_ADDR=backend:9091 + command: /bin/bash -c "envsubst < /tmp/nginx.conf > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" + ports: + - 8080:80 + depends_on: + - backend + backend: + build: flask + environment: + - FLASK_SERVER_PORT=9091 + volumes: + - ./flask:/src + depends_on: + - mongo + mongo: + image: mongo diff --git a/samples/nginx-flask-mongo/flask/Dockerfile b/samples/nginx-flask-mongo/flask/Dockerfile new file mode 100755 index 0000000..220f79a --- /dev/null +++ b/samples/nginx-flask-mongo/flask/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.7 + +WORKDIR /src +COPY . . +RUN pip install -r requirements.txt + +CMD ["./server.py"] diff --git a/samples/nginx-flask-mongo/flask/requirements.txt b/samples/nginx-flask-mongo/flask/requirements.txt new file mode 100755 index 0000000..d75be0c --- /dev/null +++ b/samples/nginx-flask-mongo/flask/requirements.txt @@ -0,0 +1,2 @@ +pymongo +flask diff --git a/samples/nginx-flask-mongo/flask/server.py b/samples/nginx-flask-mongo/flask/server.py new file mode 100755 index 0000000..33c7280 --- /dev/null +++ b/samples/nginx-flask-mongo/flask/server.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +import os + +from flask import Flask +from pymongo import MongoClient + +app = Flask(__name__) + +client = MongoClient("mongo:27017") + +@app.route('/') +def todo(): + try: + client.admin.command('ismaster') + except: + return "Server not available" + return "Hello fom the MongoDB client!\n" + + +if __name__ == "__main__": + app.run(host='0.0.0.0', port=os.environ.get("FLASK_SERVER_PORT", 9090), debug=True) + diff --git a/samples/nginx-flask-mongo/nginx/nginx.conf b/samples/nginx-flask-mongo/nginx/nginx.conf new file mode 100644 index 0000000..a472e41 --- /dev/null +++ b/samples/nginx-flask-mongo/nginx/nginx.conf @@ -0,0 +1,6 @@ +server { + listen 80; + location / { + proxy_pass http://$FLASK_SERVER_ADDR; + } +} diff --git a/samples/nginx-gohttp_1/Dockerfile b/samples/nginx-gohttp_1/Dockerfile new file mode 100644 index 0000000..a9f31ce --- /dev/null +++ b/samples/nginx-gohttp_1/Dockerfile @@ -0,0 +1,11 @@ +FROM golang:1.13 AS builder + +WORKDIR /compose/hello-docker +COPY main.go main.go +RUN CGO_ENABLED=0 go build -o backend main.go + +FROM scratch +COPY --from=builder /compose/hello-docker/backend /usr/local/bin/backend +CMD ["/usr/local/bin/backend"] + + diff --git a/samples/nginx-gohttp_1/docker-compose.yml b/samples/nginx-gohttp_1/docker-compose.yml new file mode 100644 index 0000000..ea55443 --- /dev/null +++ b/samples/nginx-gohttp_1/docker-compose.yml @@ -0,0 +1,14 @@ + +version: "3.6" +services: + frontend: + image: nginx + ports: + - 8080:80 + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf + depends_on: + - backend + backend: + build: . + diff --git a/samples/nginx-gohttp_1/main.go b/samples/nginx-gohttp_1/main.go new file mode 100644 index 0000000..a273432 --- /dev/null +++ b/samples/nginx-gohttp_1/main.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "log" + "net/http" +) + +func handler(w http.ResponseWriter, r *http.Request) { + fmt.Println(r.URL.RawQuery) + fmt.Fprintf(w, ` + ## . + ## ## ## == + ## ## ## ## ## === +/"""""""""""""""""\___/ === +{ / ===- +\______ O __/ + \ \ __/ + \____\_______/ + + +Hello from Docker! + +`) +} + +func main() { + http.HandleFunc("/", handler) + log.Fatal(http.ListenAndServe(":80", nil)) +} diff --git a/samples/nginx-gohttp_1/nginx.conf b/samples/nginx-gohttp_1/nginx.conf new file mode 100644 index 0000000..910b45b --- /dev/null +++ b/samples/nginx-gohttp_1/nginx.conf @@ -0,0 +1,6 @@ +server { + listen 80; + location / { + proxy_pass http://backend:80; + } +} \ No newline at end of file diff --git a/samples/nginx-gohttp_2/backend/Dockerfile b/samples/nginx-gohttp_2/backend/Dockerfile new file mode 100644 index 0000000..949f8a3 --- /dev/null +++ b/samples/nginx-gohttp_2/backend/Dockerfile @@ -0,0 +1,11 @@ +FROM golang:1.13 AS build + +WORKDIR /compose/hello-docker +COPY main.go main.go +RUN CGO_ENABLED=0 go build -o backend main.go + +FROM scratch +COPY --from=build /compose/hello-docker/backend /usr/local/bin/backend +CMD ["/usr/local/bin/backend"] + + diff --git a/samples/nginx-gohttp_2/backend/main.go b/samples/nginx-gohttp_2/backend/main.go new file mode 100644 index 0000000..a273432 --- /dev/null +++ b/samples/nginx-gohttp_2/backend/main.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "log" + "net/http" +) + +func handler(w http.ResponseWriter, r *http.Request) { + fmt.Println(r.URL.RawQuery) + fmt.Fprintf(w, ` + ## . + ## ## ## == + ## ## ## ## ## === +/"""""""""""""""""\___/ === +{ / ===- +\______ O __/ + \ \ __/ + \____\_______/ + + +Hello from Docker! + +`) +} + +func main() { + http.HandleFunc("/", handler) + log.Fatal(http.ListenAndServe(":80", nil)) +} diff --git a/samples/nginx-gohttp_2/docker-compose.yml b/samples/nginx-gohttp_2/docker-compose.yml new file mode 100644 index 0000000..1bd5626 --- /dev/null +++ b/samples/nginx-gohttp_2/docker-compose.yml @@ -0,0 +1,12 @@ + +version: "3.6" +services: + frontend: + build: frontend + ports: + - 8080:80 + depends_on: + - backend + backend: + build: backend + diff --git a/samples/nginx-gohttp_2/frontend/Dockerfile b/samples/nginx-gohttp_2/frontend/Dockerfile new file mode 100644 index 0000000..7827fec --- /dev/null +++ b/samples/nginx-gohttp_2/frontend/Dockerfile @@ -0,0 +1,4 @@ +FROM nginx:alpine +COPY nginx.conf /etc/nginx/conf.d/default.conf + + diff --git a/samples/nginx-gohttp_2/frontend/nginx.conf b/samples/nginx-gohttp_2/frontend/nginx.conf new file mode 100644 index 0000000..910b45b --- /dev/null +++ b/samples/nginx-gohttp_2/frontend/nginx.conf @@ -0,0 +1,6 @@ +server { + listen 80; + location / { + proxy_pass http://backend:80; + } +} \ No newline at end of file