From 449c2b58ae322d8bbc7090cf0746ae81a55d663b Mon Sep 17 00:00:00 2001 From: maxmlv Date: Fri, 19 Jun 2026 23:32:30 +0300 Subject: [PATCH 1/2] implement Dockerfile for todoapp, write INSTRUCTION.md --- Dockerfile | 29 +++++++++++++++++++++++++++++ INSTRUCTION.md | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 Dockerfile create mode 100644 INSTRUCTION.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1f8e6e9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +ARG PYTHON_VERSION=3.8 + +FROM python:${PYTHON_VERSION}-slim AS base +WORKDIR /app + +RUN python -m venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" + +COPY requirements.txt . +RUN pip install --upgrade pip && \ + pip install --no-cache-dir -r requirements.txt + +COPY . . + +FROM python:${PYTHON_VERSION}-slim +WORKDIR /app + +ENV PYTHONUNBUFFERED=1 +ENV PATH="/opt/venv/bin:$PATH" + +COPY --from=base /opt/venv /opt/venv +COPY --from=base /app /app + +RUN python manage.py migrate + +EXPOSE 8000 + +ENTRYPOINT ["python", "manage.py", "runserver"] +CMD ["0.0.0.0:8080"] \ No newline at end of file diff --git a/INSTRUCTION.md b/INSTRUCTION.md new file mode 100644 index 0000000..154e336 --- /dev/null +++ b/INSTRUCTION.md @@ -0,0 +1,37 @@ +# Docker Core / Containerizing an App / Docker by practice | ToDo App + +## Docker Hub Repository + +The application image is available on Docker Hub: + +🔗 [https://hub.docker.com/repository/docker/maxmlv/todoapp](https://hub.docker.com/repository/docker/maxmlv/todoapp) + +## Pull the Image + +You can pull the prebuilt image from Docker Hub: + +```bash +docker pull maxmlv/todoapp:1.0.0 +``` + +## Run the Container + +```bash +docker run -d -p 8080:8080 --name todoapp todoapp:1.0.0 +``` + +- `-d` — run in detached mode (in the background) +- `-p 8080:8080` — map container port 8080 to host port 8080 +- `--name todoapp` — name the running container + +## Access the Application + +Once the container is running, open your browser and go to: + +[http://localhost:8080](http://localhost:8080) + +## Stopping the Container + +```bash +docker stop todoapp +``` \ No newline at end of file From 1cd86ddb2e3546211d843a076453d40f4b9711be Mon Sep 17 00:00:00 2001 From: maxmlv Date: Fri, 19 Jun 2026 23:52:35 +0300 Subject: [PATCH 2/2] fix: expose port and added build instruction --- Dockerfile | 2 +- INSTRUCTION.md | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1f8e6e9..5139f03 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,7 @@ COPY --from=base /app /app RUN python manage.py migrate -EXPOSE 8000 +EXPOSE 8080 ENTRYPOINT ["python", "manage.py", "runserver"] CMD ["0.0.0.0:8080"] \ No newline at end of file diff --git a/INSTRUCTION.md b/INSTRUCTION.md index 154e336..b3020b4 100644 --- a/INSTRUCTION.md +++ b/INSTRUCTION.md @@ -6,9 +6,19 @@ The application image is available on Docker Hub: 🔗 [https://hub.docker.com/repository/docker/maxmlv/todoapp](https://hub.docker.com/repository/docker/maxmlv/todoapp) +## Build the Image + +Clone repository and build the image locally: + +```bash +git clone https://github.com/maxmlv/devops_todolist.git +cd devops_todolist +docker build -t todoapp:1.0.0 . +``` + ## Pull the Image -You can pull the prebuilt image from Docker Hub: +Or you can pull the prebuilt image from Docker Hub: ```bash docker pull maxmlv/todoapp:1.0.0