Я новичок в Docker и пытаюсь создать простую форму, которая будет создаваться с помощью Docker и отображаться через мой локальный хост.Когда я docker-compose up
не получаю никаких ошибок, но когда я захожу в свой браузер и захожу на localhost:5003
, я получаю страницу «Невозможно подключиться».У меня сложилось впечатление, что я смогу увидеть немедленный результат на моем локальном хосте: 5003.Я включил файлы и пути к этим файлам.Любое направление высоко ценится.
/ docker_test / form / api.py
# docker test
from flask import Flask, render_template, flash, request
#from flask_restful import Resource, Api
from wtforms import Form, TextField, TextAreaField, validators, StringField, SubmitField
app= Flask(__name__)
#api= Api(app)
app.config.from_object(__name__)
app.config['SECRET_KEY'] = '7d441f27d441f27567d441f2b6176a'
#@app.route("/", methods=['GET', 'POST'])
class UserForm(Form):
salutation= TextField('Salutation:', validators= [validators.required()])
first_name= TextField('First Name:', validators= [validators.required()])
last_name= TextField('Last Name:', validators= [validators.required()])
@app.route("/", methods=['GET', 'POST'])
def welcome():
form = UserForm(request.form)
print(form.errors)
if request.method == 'POST':
salutation=request.form['salutation']
first_name=request.form['first_name']
last_name=request.form['last_name']
print(salutation)
print(first_name)
print(last_name)
if form.validate():
flash('Welcome' + salutation + last_name)
else:
flash('Please fill in the required fields.')
return render_template("index.php", form=form)
#api.add_resource(UserForm, '/')
if __name__ == '__main__':
app.run(host= '0.0.0.0', port=80, debug=True)
/ docker_test / form / index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Docker Test</title>
</head>
<body>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<ul>
{% for message in messages %}
<li>{{ message[1] }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<form action="" method="post">
{{ form.csrf }}
<div class="input text">
{{ form.salutation.label }} {{ form.salutation }}
</div>
<div class="input text">
{{ form.first_name.label }} {{ form.first_name }}
</div>
<div class="input text">
{{ form.last_name.label }} {{ form.last_name }}
</div>
<div class="input submit">
<input type="submit" value="Submit" />
</div>
</form>
</body>
</html>
/ docker_test / form / Dockerfile
FROM python:3-onbuild
COPY . /usr/src/app
CMD ["python", "api.py"]
/ docker_test / form / needs.txt
Flask==0.12
flask-restful==0.3.5
wtforms==2.2
/ docker_test / docker-compose.yml
version: '2'
services:
form-service:
build: ./form
volumes:
- ./form:/usr/src/app
ports:
- 5001:80
website:
image: ubuntu:latest
volumes:
- ./website:/var/www/html
ports:
- 5003:80
depends_on:
- form-service
Вывод docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e434e098a48 php:apache "docker-php-entryp..." 24 minutes ago Exited (0) 20 seconds ago tutorial_website_1
9af857e393f9 tutorial_product-service "python api.py" 30 minutes ago Up 17 minutes 0.0.0.0:5001->80/tcp tutorial_product-service_1
3a072f6493f1 ubuntu:latest "/bin/bash" 3 hours ago Exited (0) 3 hours ago dockertest_website_1
75e4520d2878 dockertest_form-service "python api.py" 4 hours ago Exited (0) About an hour ago dockertest_form-service_1
d30ba94db492 c783acf7c95e "/bin/sh -c 'pip i..." 3 days ago Exited (1) 3 days ago peaceful_hodgkin
899f1a2db5ae 292ed8dee366 "/bin/sh -c '#(nop..." 3 days ago Created jolly_hugle