Docker EP β 10: Letβs Dockerize a Flask Application
Letβs develop a simple flask application,
- Set up the project directory: Create a new directory for your Flask project.
mkdir flask-docker-app cd flask-docker-app
2. Create a virtual environment (optional but recommended):
python3 -m venv venv source venv/bin/activate
3. Install Flask
pip install Flask
4. Create a simple Flask app:
In the flask-docker-app
directory, create a file named app.py
with the following content,
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, Dockerized Flask!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
5. Test the Flask app: Run the Flask application to ensure itβs working.
python app.py
Visit http://127.0.0.1:5000/
in your browser. You should see βHello, Dockerized Flask!β.
Dockerize the Flask Application
- Create a Dockerfile: In the
flask-docker-app
directory, create a file namedDockerfile
with the following content:
# Use the official Python image from the Docker Hub FROM python:3.9-slim # Set the working directory in the container WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --no-cache-dir Flask # Make port 5000 available to the world outside this container EXPOSE 5000 # Define environment variable ENV FLASK_APP=app.py # Run app.py when the container launches CMD ["python", "app.py"]
2. Create a .dockerignore
file:
In the flask-docker-app
directory, create a file named .dockerignore
to ignore unnecessary files during the Docker build process:
venv __pycache__ *.pyc *.pyo
3. Build the Docker image:
In the flask-docker-app
directory, run the following command to build your Docker image:
docker build -t flask-docker-app .
4. Run the Docker container:
Run the Docker container using the image you just built,
docker run -p 5000:5000 flask-docker-app
5. Access the Flask app in Docker: Visit http://localhost:5000/
in your browser. You should see βHello, Dockerized Flask!β running in a Docker container.
You have successfully created a simple Flask application and Dockerized it. The Dockerfile allows you to package your app with its dependencies and run it in a consistent environment.