Merge pull request #1 from aiordache/nginx_goserver_sample

Compose samples
This commit is contained in:
Anca Iordache 2020-02-13 15:30:33 +01:00 committed by GitHub
commit 0bf5504d67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 184 additions and 0 deletions

View File

@ -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

View File

@ -0,0 +1,7 @@
FROM python:3.7
WORKDIR /src
COPY . .
RUN pip install -r requirements.txt
CMD ["./server.py"]

View File

@ -0,0 +1,2 @@
pymongo
flask

View File

@ -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)

View File

@ -0,0 +1,6 @@
server {
listen 80;
location / {
proxy_pass http://$FLASK_SERVER_ADDR;
}
}

View File

@ -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"]

View File

@ -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: .

View File

@ -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))
}

View File

@ -0,0 +1,6 @@
server {
listen 80;
location / {
proxy_pass http://backend:80;
}
}

View File

@ -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"]

View File

@ -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))
}

View File

@ -0,0 +1,12 @@
version: "3.6"
services:
frontend:
build: frontend
ports:
- 8080:80
depends_on:
- backend
backend:
build: backend

View File

@ -0,0 +1,4 @@
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf

View File

@ -0,0 +1,6 @@
server {
listen 80;
location / {
proxy_pass http://backend:80;
}
}