Skip to content

Commit 456123d

Browse files
committed
Initial Docker packaging config
Defaults from "docker init".
1 parent 557ce4f commit 456123d

File tree

3 files changed

+132
-0
lines changed

3 files changed

+132
-0
lines changed

.dockerignore

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Include any files or directories that you don't want to be copied to your
2+
# container here (e.g., local build artifacts, temporary files, etc.).
3+
#
4+
# For more help, visit the .dockerignore file reference guide at
5+
# https://docs.docker.com/engine/reference/builder/#dockerignore-file
6+
7+
**/.DS_Store
8+
**/__pycache__
9+
**/.venv
10+
**/.classpath
11+
**/.dockerignore
12+
**/.env
13+
**/.git
14+
**/.gitignore
15+
**/.project
16+
**/.settings
17+
**/.toolstarget
18+
**/.vs
19+
**/.vscode
20+
**/*.*proj.user
21+
**/*.dbmdl
22+
**/*.jfm
23+
**/bin
24+
**/charts
25+
**/docker-compose*
26+
**/compose*
27+
**/Dockerfile*
28+
**/node_modules
29+
**/npm-debug.log
30+
**/obj
31+
**/secrets.dev.yaml
32+
**/values.dev.yaml
33+
LICENSE
34+
README.md

Dockerfile

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# syntax=docker/dockerfile:1
2+
3+
# Comments are provided throughout this file to help you get started.
4+
# If you need more help, visit the Dockerfile reference guide at
5+
# https://docs.docker.com/engine/reference/builder/
6+
7+
ARG PYTHON_VERSION=3.11.6
8+
FROM python:${PYTHON_VERSION}-slim as base
9+
10+
# Prevents Python from writing pyc files.
11+
ENV PYTHONDONTWRITEBYTECODE=1
12+
13+
# Keeps Python from buffering stdout and stderr to avoid situations where
14+
# the application crashes without emitting any logs due to buffering.
15+
ENV PYTHONUNBUFFERED=1
16+
17+
WORKDIR /app
18+
19+
# Create a non-privileged user that the app will run under.
20+
# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user
21+
ARG UID=10001
22+
RUN adduser \
23+
--disabled-password \
24+
--gecos "" \
25+
--home "/nonexistent" \
26+
--shell "/sbin/nologin" \
27+
--no-create-home \
28+
--uid "${UID}" \
29+
appuser
30+
31+
# Download dependencies as a separate step to take advantage of Docker's caching.
32+
# Leverage a cache mount to /root/.cache/pip to speed up subsequent builds.
33+
# Leverage a bind mount to requirements.txt to avoid having to copy them into
34+
# into this layer.
35+
RUN --mount=type=cache,target=/root/.cache/pip \
36+
--mount=type=bind,source=requirements.txt,target=requirements.txt \
37+
python -m pip install -r requirements.txt
38+
39+
# Switch to the non-privileged user to run the application.
40+
USER appuser
41+
42+
# Copy the source code into the container.
43+
COPY . .
44+
45+
# Expose the port that the application listens on.
46+
EXPOSE 8000
47+
48+
# Run the application.
49+
CMD python3 tut.py

compose.yaml

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Comments are provided throughout this file to help you get started.
2+
# If you need more help, visit the Docker compose reference guide at
3+
# https://docs.docker.com/compose/compose-file/
4+
5+
# Here the instructions define your application as a service called "server".
6+
# This service is built from the Dockerfile in the current directory.
7+
# You can add other services your application may depend on here, such as a
8+
# database or a cache. For examples, see the Awesome Compose repository:
9+
# https://github.com/docker/awesome-compose
10+
services:
11+
server:
12+
build:
13+
context: .
14+
ports:
15+
- 8000:8000
16+
17+
# The commented out section below is an example of how to define a PostgreSQL
18+
# database that your application can use. `depends_on` tells Docker Compose to
19+
# start the database before your application. The `db-data` volume persists the
20+
# database data between container restarts. The `db-password` secret is used
21+
# to set the database password. You must create `db/password.txt` and add
22+
# a password of your choosing to it before running `docker compose up`.
23+
# depends_on:
24+
# db:
25+
# condition: service_healthy
26+
# db:
27+
# image: postgres
28+
# restart: always
29+
# user: postgres
30+
# secrets:
31+
# - db-password
32+
# volumes:
33+
# - db-data:/var/lib/postgresql/data
34+
# environment:
35+
# - POSTGRES_DB=example
36+
# - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
37+
# expose:
38+
# - 5432
39+
# healthcheck:
40+
# test: [ "CMD", "pg_isready" ]
41+
# interval: 10s
42+
# timeout: 5s
43+
# retries: 5
44+
# volumes:
45+
# db-data:
46+
# secrets:
47+
# db-password:
48+
# file: db/password.txt
49+

0 commit comments

Comments
 (0)