weatherapp dockerized

celery-integration
peter.fong 10 months ago
parent 78af76b2b9
commit fdcdd82260

@ -0,0 +1,36 @@
# Gebruik een officiële Python-image als basis
FROM python:3.9-slim
RUN apt-get update && apt-get -y install cron nano && procps
# Werkdirectory instellen
WORKDIR /app
# Kopieer je Python-bestanden naar de container
COPY . /app
# Kopieer de requirements.txt naar de container
COPY requirements.txt .
# Kopieer de requirements.txt naar de container
COPY .env .
# Installeer de vereiste Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Installeer cron en zorg ervoor dat de cron-demon actief is
RUN apt-get update && apt-get install -y cron
# Voeg het cron-script toe
COPY cronfile.energie /etc/cron.d/cronfile.energie
# Zorg ervoor dat het cron-script uitvoerbaar is
RUN chmod 0644 /etc/cron.d/cronfile.energie
# Voeg een cronjob toe die de Python-script dagelijks uitvoert
RUN crontab /etc/cron.d/cronfile.energie
# Voeg start.sh toe
COPY start.sh /start.sh
RUN chmod +x /start.sh
# Gebruik start.sh om zowel cron als currentprice.py te starten
CMD ["/start.sh"]

@ -0,0 +1,20 @@
# docker compose -f energyprices_docker-compose.yml up -d --build
version: "3.3"
services:
WeatherApp:
restart: always
container_name: WeatherApp
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
- FLASK_ENV=production
- FLASK_APP=main.py
build:
dockerfile: ./Dockerfile
env_file:
- .env
deploy:
mode: replicated
replicas: 1

@ -0,0 +1,15 @@
#!/bin/bash
# Laad omgevingsvariabelen als .env bestaat
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
# Start de cron-service correct
service cron start
# Start de Flask-app met Gunicorn (betere productie-optie)
gunicorn --bind 0.0.0.0:5000 main:app --workers 4 &
# Houd de container draaiende en log cron-uitvoer
tail -f /var/log/cron.log

@ -1,7 +1,7 @@
# Gebruik een officiële Python-image als basis
FROM python:3.9-slim
RUN apt-get update && apt-get -y install cron nano && procps
RUN apt-get update && apt-get -y install cron nano procps
# Werkdirectory instellen
WORKDIR /app

Loading…
Cancel
Save