Încerc să mă conectez și să construiesc două fișiere docker cu docker-compune. Sunt nou în docker și apoi devin confuz în timp ce mă conectez cu docker-compose. Scopul principal: conectarea frontend și backend (a aplicației flask) prin docker-compune
Dacă fișierul meu Dockerfile și docker-compose.yml este greșit. va rog sa ma corectati
- ca front-end într-un folder de front-end cu Dockerfile.
- back end într-un alt folder cu Dockerfile. (conectând acest 2, prin
doc-comp)
Aici este structura mea de fișiere
Aici este structura mea de fișiere
Aici este docker-compose.yml meu
versiunea: '3'
Servicii:
în față:
build: ./frontend
porturi:
- 5000:80
volume:
- .:/usr/share/nginx/htm
backend:
build: ./backend
depinde de:
- în față
porturi:
- 5001:80
volume:
- /home/doc-tryy-2/frontend:/usr/src/app
volume:
asset-volume4:
șofer: local
Aici este frontend-ul meu/Dockerfile
DIN nginx:alpin
COPIE . /usr/share/nginx/htm
WORKDIR /usr/share/nginx/htm
EXPUNERE 5000
Aici este backend-ul meu/Dockerfile
DIN python:3
WORKDIR /usr/src/app
COPIEȚI cerințe.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPIE . .
EXPUNEREA 80
CMD [ "python", "app.py" ]
Aici este backend-ul meu/app.py
din flask import Flask, render_template, flash, redirect, url_for, session, logging, request
aplicație = Balon(__nume__)
app.secret_key = „bună ziua”
@app.route("/", metode=["GET", "POST"])
def login():
dacă request.method == „POST”:
uname = cerere.form["uname"]
return render_template("loginpage.html", uname=uname)
altceva:
return render_template("loginpage.html")
if __name__ == "__main__":
app.run(debug=True,port=80,host='0.0.0.0')
Iată șabloanele mele/loginepage.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Logg</title>
</head>
<body>
<h2>HTML Forms</h2>
<form action="/" method="post">
<label for="fname">First name:</label><br>
<input type="text" id="uname" name="uname" value="John"><br>
<input type="submit" value="Submit">
</form>
<h1>hi {{uname}}</h1>
</body>
</html>