Added port via env

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-05 09:32:07 +02:00
parent 4d68ed2a24
commit 1bea9703ea
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
5 changed files with 19 additions and 8 deletions

View File

@ -11,8 +11,11 @@ RUN pip install --no-cache-dir -r requirements.txt
# Copy application code # Copy application code
COPY app/ . COPY app/ .
# Expose port # Set default port environment variable
EXPOSE 5000 ENV PORT=5000
# Start command # Expose port (optional for documentation)
CMD ["python", "app.py"] EXPOSE ${PORT}
# Start command using shell to allow env substitution
CMD ["sh", "-c", "exec python app.py --port=${PORT}"]

View File

@ -64,4 +64,5 @@ def index():
) )
if __name__ == "__main__": if __name__ == "__main__":
app.run(debug=(FLASK_ENV == "development"), host="0.0.0.0", port=5000) port = int(os.getenv("PORT", 5000))
app.run(debug=(FLASK_ENV == "development"), host="0.0.0.0", port=port)

View File

@ -1,3 +1,5 @@
version: '3.8'
services: services:
portfolio: portfolio:
build: build:
@ -6,7 +8,9 @@ services:
image: application-portfolio image: application-portfolio
container_name: portfolio container_name: portfolio
ports: ports:
- "5000:5000" - "${PORT:-5000}:5000"
volumes: volumes:
- ./app:/app - ./app:/app
environment:
- PORT=${PORT:-5000}
restart: unless-stopped restart: unless-stopped

2
env.example Normal file
View File

@ -0,0 +1,2 @@
PORT=5000
FLASK_ENV=production

View File

@ -22,6 +22,7 @@ import argparse
import subprocess import subprocess
import sys import sys
import os import os
PORT = int(os.getenv("PORT", 5000))
def run_command(command, dry_run=False): def run_command(command, dry_run=False):
"""Utility function to run a shell command.""" """Utility function to run a shell command."""
@ -94,7 +95,7 @@ def run_dev(args):
volume_mapping = f"{current_dir}/app/:/app" volume_mapping = f"{current_dir}/app/:/app"
command = [ command = [
"docker", "run", "-d", "docker", "run", "-d",
"-p", "5000:5000", "-p", f"{PORT}:{PORT}",
"--name", "portfolio", "--name", "portfolio",
"-v", volume_mapping, "-v", volume_mapping,
"-e", "FLASK_APP=app.py", "-e", "FLASK_APP=app.py",
@ -115,7 +116,7 @@ def run_prod(args):
""" """
command = [ command = [
"docker", "run", "-d", "docker", "run", "-d",
"-p", "5000:5000", "-p", "{PORT}:{PORT}",
"--name", "portfolio", "--name", "portfolio",
"application-portfolio" "application-portfolio"
] ]