parent
1936fc4fe2
commit
4a619921b9
@ -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 |
@ -0,0 +1,7 @@ |
||||
FROM python:3.7 |
||||
|
||||
WORKDIR /src |
||||
COPY . . |
||||
RUN pip install -r requirements.txt |
||||
|
||||
CMD ["./server.py"] |
@ -0,0 +1,2 @@ |
||||
pymongo |
||||
flask |
@ -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) |
||||
|
@ -0,0 +1,6 @@ |
||||
server { |
||||
listen 80; |
||||
location / { |
||||
proxy_pass http://$FLASK_SERVER_ADDR; |
||||
} |
||||
} |
@ -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"] |
||||
|
||||
|
@ -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: . |
||||
|
@ -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)) |
||||
} |
@ -0,0 +1,6 @@ |
||||
server { |
||||
listen 80; |
||||
location / { |
||||
proxy_pass http://backend:80; |
||||
} |
||||
} |
@ -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"] |
||||
|
||||
|
@ -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)) |
||||
} |
@ -0,0 +1,12 @@ |
||||
|
||||
version: "3.6" |
||||
services: |
||||
frontend: |
||||
build: frontend |
||||
ports: |
||||
- 8080:80 |
||||
depends_on: |
||||
- backend |
||||
backend: |
||||
build: backend |
||||
|
@ -0,0 +1,4 @@ |
||||
FROM nginx:alpine |
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf |
||||
|
||||
|
@ -0,0 +1,6 @@ |
||||
server { |
||||
listen 80; |
||||
location / { |
||||
proxy_pass http://backend:80; |
||||
} |
||||
} |
Loading…
Reference in new issue