From 8b281d8a30e98c16f755d4408ab6706cd9a8d0f5 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Mon, 24 Jun 2024 15:29:50 +0200 Subject: [PATCH] =?UTF-8?q?Versi=C3=B3n=20funcionando=20para=20docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LyricsPy/buildConComposeProd.sh | 2 +- LyricsPy/docker-compose.prod.yml | 4 +-- LyricsPy/servicios/Dockerfile | 4 +-- LyricsPy/servicios/entrypoint.sh | 3 ++ LyricsPy/servicios/instance/songs.db | Bin 0 -> 69632 bytes LyricsPy/servicios/lyrics/__init__.py | 32 ++++++++++++++++++ LyricsPy/servicios/{ => lyrics}/models.py | 0 .../servicios/{app.py => lyrics/paginas.py} | 32 +++++------------- .../servicios/{ => lyrics}/static/style.css | 0 .../{ => lyrics}/templates/add_album.html | 0 .../{ => lyrics}/templates/add_song.html | 0 .../{ => lyrics}/templates/album.html | 4 +-- .../{ => lyrics}/templates/base.html | 8 ++--- .../{ => lyrics}/templates/index.html | 8 ++--- .../{ => lyrics}/templates/search.html | 6 ++-- .../{ => lyrics}/templates/song.html | 0 LyricsPy/servicios/requirements.txt | 1 + 17 files changed, 63 insertions(+), 41 deletions(-) create mode 100755 LyricsPy/servicios/entrypoint.sh create mode 100644 LyricsPy/servicios/instance/songs.db create mode 100644 LyricsPy/servicios/lyrics/__init__.py rename LyricsPy/servicios/{ => lyrics}/models.py (100%) rename LyricsPy/servicios/{app.py => lyrics/paginas.py} (69%) rename LyricsPy/servicios/{ => lyrics}/static/style.css (100%) rename LyricsPy/servicios/{ => lyrics}/templates/add_album.html (100%) rename LyricsPy/servicios/{ => lyrics}/templates/add_song.html (100%) rename LyricsPy/servicios/{ => lyrics}/templates/album.html (63%) rename LyricsPy/servicios/{ => lyrics}/templates/base.html (86%) rename LyricsPy/servicios/{ => lyrics}/templates/index.html (68%) rename LyricsPy/servicios/{ => lyrics}/templates/search.html (67%) rename LyricsPy/servicios/{ => lyrics}/templates/song.html (100%) diff --git a/LyricsPy/buildConComposeProd.sh b/LyricsPy/buildConComposeProd.sh index f0ec60b..2345564 100644 --- a/LyricsPy/buildConComposeProd.sh +++ b/LyricsPy/buildConComposeProd.sh @@ -1,3 +1,3 @@ docker-compose -f docker-compose.prod.yml down -docker rmi lyrics_lyrics +docker rmi lyricspy_lyrics docker-compose -f docker-compose.prod.yml up -d --build diff --git a/LyricsPy/docker-compose.prod.yml b/LyricsPy/docker-compose.prod.yml index 61bc882..3ae0061 100644 --- a/LyricsPy/docker-compose.prod.yml +++ b/LyricsPy/docker-compose.prod.yml @@ -3,7 +3,7 @@ version: '2.2' services: lyrics: build: ./servicios - command: gunicorn --bind 0.0.0.0:5000 app:create_app() + command: gunicorn --bind 0.0.0.0:5000 lyrics:create_app() volumes: - lyrics_prod:/instance expose: @@ -14,7 +14,7 @@ services: nginx: build: ./servicios/nginx ports: - - 1337:80 + - 1338:80 depends_on: - lyrics diff --git a/LyricsPy/servicios/Dockerfile b/LyricsPy/servicios/Dockerfile index dff2a95..e3d73ed 100644 --- a/LyricsPy/servicios/Dockerfile +++ b/LyricsPy/servicios/Dockerfile @@ -2,7 +2,7 @@ FROM python:3.8-slim-buster -WORKDIR / +WORKDIR /lyrics # set environment variables ENV PYTHONDONTWRITEBYTECODE 1 @@ -21,4 +21,4 @@ COPY . . # run entrypoint.sh -#ENTRYPOINT ["./entrypoint.sh"] +ENTRYPOINT ["/lyrics/entrypoint.sh"] diff --git a/LyricsPy/servicios/entrypoint.sh b/LyricsPy/servicios/entrypoint.sh new file mode 100755 index 0000000..5fc4448 --- /dev/null +++ b/LyricsPy/servicios/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +exec "$@" diff --git a/LyricsPy/servicios/instance/songs.db b/LyricsPy/servicios/instance/songs.db new file mode 100644 index 0000000000000000000000000000000000000000..6262314353dfe462b013243158f22e1c468ea985 GIT binary patch literal 69632 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 PeqT(sX%HrIrV9Q)L%^zZ literal 0 HcmV?d00001 diff --git a/LyricsPy/servicios/lyrics/__init__.py b/LyricsPy/servicios/lyrics/__init__.py new file mode 100644 index 0000000..1ea8216 --- /dev/null +++ b/LyricsPy/servicios/lyrics/__init__.py @@ -0,0 +1,32 @@ +import os +from flask import Flask +from flask_sqlalchemy import SQLAlchemy + + +from lyrics import paginas + +def create_app(): + app = Flask(__name__) + app.config.from_prefixed_env() + + app.config['SECRET_KEY'] = 'secret-key-goes-here' + app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///songs.db' + + from .models import db + + db.init_app(app) + + from . import models + + with app.app_context(): + db.create_all() + +# basededatos.init_app(app) + + app.register_blueprint(paginas.bp) + + print(f"Current Environment: {os.getenv('ENVIRONMENT')}") + print(f"Using Database: {app.config.get('DATABASE')}") + + return app + diff --git a/LyricsPy/servicios/models.py b/LyricsPy/servicios/lyrics/models.py similarity index 100% rename from LyricsPy/servicios/models.py rename to LyricsPy/servicios/lyrics/models.py diff --git a/LyricsPy/servicios/app.py b/LyricsPy/servicios/lyrics/paginas.py similarity index 69% rename from LyricsPy/servicios/app.py rename to LyricsPy/servicios/lyrics/paginas.py index 0e775f9..397c336 100644 --- a/LyricsPy/servicios/app.py +++ b/LyricsPy/servicios/lyrics/paginas.py @@ -1,29 +1,20 @@ -from flask import Flask, render_template, request, redirect, url_for -from models import db, Song, Album +from flask import Blueprint, render_template, request, redirect, url_for +from .models import db, Song, Album -app = Flask(__name__) -app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///songs.db' -app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False -db.init_app(app) +bp = Blueprint("paginas", __name__) -@app.before_request -def before_request(): - if not hasattr(app, 'db_initialized'): - db.create_all() - app.db_initialized = True - -@app.route('/') +@bp.route('/') def index(): songs = Song.query.all() albums = Album.query.all() return render_template('index.html', songs=songs, albums=albums) -@app.route('/song/') +@bp.route('/song/') def song(song_id): song = Song.query.get_or_404(song_id) return render_template('song.html', song=song) -@app.route('/add_song', methods=['GET', 'POST']) +@bp.route('/add_song', methods=['GET', 'POST']) def add_song(): if request.method == 'POST': title = request.form['title'] @@ -40,7 +31,7 @@ def add_song(): albums = Album.query.all() return render_template('add_song.html', albums=albums) -@app.route('/add_album', methods=['GET', 'POST']) +@bp.route('/add_album', methods=['GET', 'POST']) def add_album(): if request.method == 'POST': name = request.form['name'] @@ -55,13 +46,13 @@ def add_album(): return render_template('add_album.html') -@app.route('/album/') +@bp.route('/album/') def album(album_id): album = Album.query.get_or_404(album_id) songs = Song.query.filter_by(album_id=album_id).all() return render_template('album.html', album=album, songs=songs) -@app.route('/search') +@bp.route('/search') def search(): query = request.args.get('query', '') if query: @@ -69,8 +60,3 @@ def search(): else: songs = [] return render_template('search.html', query=query, songs=songs) - -if __name__ == '__main__': - with app.app_context(): - db.create_all() - app.run(debug=True) diff --git a/LyricsPy/servicios/static/style.css b/LyricsPy/servicios/lyrics/static/style.css similarity index 100% rename from LyricsPy/servicios/static/style.css rename to LyricsPy/servicios/lyrics/static/style.css diff --git a/LyricsPy/servicios/templates/add_album.html b/LyricsPy/servicios/lyrics/templates/add_album.html similarity index 100% rename from LyricsPy/servicios/templates/add_album.html rename to LyricsPy/servicios/lyrics/templates/add_album.html diff --git a/LyricsPy/servicios/templates/add_song.html b/LyricsPy/servicios/lyrics/templates/add_song.html similarity index 100% rename from LyricsPy/servicios/templates/add_song.html rename to LyricsPy/servicios/lyrics/templates/add_song.html diff --git a/LyricsPy/servicios/templates/album.html b/LyricsPy/servicios/lyrics/templates/album.html similarity index 63% rename from LyricsPy/servicios/templates/album.html rename to LyricsPy/servicios/lyrics/templates/album.html index 22cfa5b..268c27d 100644 --- a/LyricsPy/servicios/templates/album.html +++ b/LyricsPy/servicios/lyrics/templates/album.html @@ -9,10 +9,10 @@ -Back to Home +Back to Home {% endblock %} diff --git a/LyricsPy/servicios/templates/base.html b/LyricsPy/servicios/lyrics/templates/base.html similarity index 86% rename from LyricsPy/servicios/templates/base.html rename to LyricsPy/servicios/lyrics/templates/base.html index ebacb20..db4575f 100644 --- a/LyricsPy/servicios/templates/base.html +++ b/LyricsPy/servicios/lyrics/templates/base.html @@ -11,10 +11,10 @@

My Song Lyrics

{% endblock %} diff --git a/LyricsPy/servicios/templates/search.html b/LyricsPy/servicios/lyrics/templates/search.html similarity index 67% rename from LyricsPy/servicios/templates/search.html rename to LyricsPy/servicios/lyrics/templates/search.html index d0d6c03..42d53ce 100644 --- a/LyricsPy/servicios/templates/search.html +++ b/LyricsPy/servicios/lyrics/templates/search.html @@ -15,9 +15,9 @@ {% for song in songs %} - {{ song.title }} + {{ song.title }} {{ song.author }} - {{ song.album.name }} + {{ song.album.name }} {% endfor %} @@ -26,5 +26,5 @@

No songs found matching your query.

{% endif %} -Back to Home +Back to Home {% endblock %} diff --git a/LyricsPy/servicios/templates/song.html b/LyricsPy/servicios/lyrics/templates/song.html similarity index 100% rename from LyricsPy/servicios/templates/song.html rename to LyricsPy/servicios/lyrics/templates/song.html diff --git a/LyricsPy/servicios/requirements.txt b/LyricsPy/servicios/requirements.txt index 6b204e4..617696c 100644 --- a/LyricsPy/servicios/requirements.txt +++ b/LyricsPy/servicios/requirements.txt @@ -8,3 +8,4 @@ MarkupSafe==2.1.5 SQLAlchemy==2.0.31 typing_extensions==4.12.2 Werkzeug==3.0.3 +gunicorn==22.0.0