Я новичок в docker и пытаюсь развернуть это веб-приложение, но не могу найти решение. Я использую windows 10 и Docker Desktop. Моя docker -версия 19.03.5 и docker -составляют версию 1.25.4, сборка неизвестна.
Моя структура каталогов:
-docker-compose.yml
-app
-static
js/
script.js
css/
style.css
-templates
-index.html
-app.py
-dockerfile
-requirements.txt
-db
-init.sql
docker -compose.yml
version: "2"
services:
app:
build: ./app
links:
- db
ports:
- "5000:5000"
db:
image: mysql:5.7
ports:
- "32000:3306"
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./db:/docker-entrypoint-initdb.d/:ro
dockerfile
FROM python:3.6
EXPOSE 5000
RUN mkdir -p /app
RUN ls /app
COPY static /app/static
COPY templates /app/templates
COPY app.py /app
COPY requirements.txt /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD python app.py
needs.txt
flask
mysql-connector
app.py
from flask import Flask, render_template, request
import mysql.connector
import os
app = Flask(__name__, template_folder='/templates', static_folder='/static')
@app.route('/')
def index():
connection = mysql.connector.connect(
user = 'root',
password = 'root',
host= 'db',
port = '3306',
database = 'test'
)
cursor = connection.cursor()
cursor.execute("SELECT name from place")
names = cursor.fetchall()
return render_template('index.html', names = names)
if __name__ == '__main__':
app.run(host='0.0.0.0')
Моя docker команда - -
docker-compose up
Затем попытка доступа http://0.0.0.0 : 5000 / , но получить mysql .connector.errors.InterfaceError: 2003: Невозможно подключиться к MySQL серверу на 'db: 3306' и jinja2.exceptions.TemplateNotFound: