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