diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index e1f50d9..2a920da 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -15,7 +15,7 @@ jobs: RUNNER_TOOL_CACHE: /toolcache strategy: matrix: - postgres-version: ['pg15', 'pg16', 'pg17'] + postgres-version: ['pg15', 'pg16', 'pg17', 'pg18'] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/Dockerfile.pg16 b/Dockerfile.pg16 index 12dcaaa..e14bb3b 100644 --- a/Dockerfile.pg16 +++ b/Dockerfile.pg16 @@ -1,4 +1,4 @@ -FROM alpine:3.22 +FROM alpine:3.23 ENV APP_HOME=/home/app/docker-postgres-backup \ PYTHONUNBUFFERED=1 \ diff --git a/Dockerfile.pg17 b/Dockerfile.pg17 index e182989..812d93c 100644 --- a/Dockerfile.pg17 +++ b/Dockerfile.pg17 @@ -1,4 +1,4 @@ -FROM alpine:3.22 +FROM alpine:3.23 ENV APP_HOME=/home/app/docker-postgres-backup \ PYTHONUNBUFFERED=1 \ diff --git a/Dockerfile.pg18 b/Dockerfile.pg18 new file mode 100644 index 0000000..eedaba6 --- /dev/null +++ b/Dockerfile.pg18 @@ -0,0 +1,20 @@ +FROM alpine:3.23 + +ENV APP_HOME=/home/app/docker-postgres-backup \ + PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PIP_BREAK_SYSTEM_PACKAGES=1 \ + PIP_NO_CACHE_DIR=off \ + PIP_DISABLE_PIP_VERSION_CHECK=on \ + LANG=en_US.UTF-8 + +RUN apk --no-cache add postgresql18-client python3 py3-pip tini + +COPY ./ $APP_HOME +WORKDIR $APP_HOME + +RUN python3 -m pip install $APP_HOME + +ENTRYPOINT ["tini", "--"] + +CMD ["python3", "start.py"] diff --git a/poetry.lock b/poetry.lock index 416e849..f3eb297 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,35 +1,35 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "boto3" -version = "1.38.32" +version = "1.42.9" description = "The AWS SDK for Python" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "boto3-1.38.32-py3-none-any.whl", hash = "sha256:b998edac72f6740bd5d9d585cf3880f2dfeb4842e626b34430fd0e9623378011"}, - {file = "boto3-1.38.32.tar.gz", hash = "sha256:3faa2c328a61745f3215a63039606a6fcf55d9afe1cc76e3a5e27b9db58cdbf6"}, + {file = "boto3-1.42.9-py3-none-any.whl", hash = "sha256:d21d22af9aeb1bad8e9b670a221d6534c0120f7e7baf523dafaca83f1f5c3f90"}, + {file = "boto3-1.42.9.tar.gz", hash = "sha256:cdd4cc3e5bb08ed8a0c5cc77eca78f98f0239521de0991f14e44b788b0c639b2"}, ] [package.dependencies] -botocore = ">=1.38.32,<1.39.0" +botocore = ">=1.42.9,<1.43.0" jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.13.0,<0.14.0" +s3transfer = ">=0.16.0,<0.17.0" [package.extras] crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.38.32" +version = "1.42.9" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "botocore-1.38.32-py3-none-any.whl", hash = "sha256:64ab919a5d8b74dd73eaac1f978d0e674d11ff3bbe8815c3d2982477be9a082c"}, - {file = "botocore-1.38.32.tar.gz", hash = "sha256:0899a090e352cb5eeaae2c7bb52a987b469d23912c7ece86664dfb5c2e074978"}, + {file = "botocore-1.42.9-py3-none-any.whl", hash = "sha256:f99ba2ca34e24c4ebec150376c815646970753c032eb84f230874b2975a185a8"}, + {file = "botocore-1.42.9.tar.gz", hash = "sha256:74f69bfd116cc7c8215481284957eecdb48580e071dd50cb8c64356a866abd8c"}, ] [package.dependencies] @@ -38,7 +38,7 @@ python-dateutil = ">=2.1,<3.0.0" urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} [package.extras] -crt = ["awscrt (==0.23.8)"] +crt = ["awscrt (==0.29.2)"] [[package]] name = "jmespath" @@ -81,14 +81,14 @@ files = [ [[package]] name = "s3transfer" -version = "0.13.0" +version = "0.16.0" description = "An Amazon S3 Transfer Manager" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "s3transfer-0.13.0-py3-none-any.whl", hash = "sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be"}, - {file = "s3transfer-0.13.0.tar.gz", hash = "sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177"}, + {file = "s3transfer-0.16.0-py3-none-any.whl", hash = "sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe"}, + {file = "s3transfer-0.16.0.tar.gz", hash = "sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920"}, ] [package.dependencies] @@ -126,21 +126,21 @@ files = [ [[package]] name = "urllib3" -version = "2.4.0" +version = "2.6.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, - {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, + {file = "urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd"}, + {file = "urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [metadata] lock-version = "2.1" diff --git a/pyproject.toml b/pyproject.toml index 292a4b6..8e813f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "docker-postgres-backup" -version = "0.5" +version = "0.6" description = "" authors = ["Eugene Morozov "] packages = [