#1 [internal] load local bake definitions #1 reading from stdin 532B done #1 DONE 0.0s #2 [internal] load build definition from Dockerfile #2 transferring dockerfile: 1.50kB done #2 DONE 0.0s #3 [internal] load metadata for docker.io/library/python:3.12-slim #3 DONE 0.0s #4 [internal] load metadata for docker.io/library/node:22-slim #4 DONE 0.5s #5 [internal] load .dockerignore #5 transferring context: 2B done #5 DONE 0.0s #6 [webbuild 1/7] FROM docker.io/library/node:22-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 #6 resolve docker.io/library/node:22-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 0.0s done #6 DONE 0.0s #7 [pybuild 1/7] FROM docker.io/library/python:3.12-slim@sha256:423ed6ab25b1921a477529254bfeeabf5855151dc2c3141699a1bfc852199fbf #7 resolve docker.io/library/python:3.12-slim@sha256:423ed6ab25b1921a477529254bfeeabf5855151dc2c3141699a1bfc852199fbf 0.0s done #7 DONE 0.0s #8 [internal] load build context #8 transferring context: 1.11MB 0.1s done #8 DONE 0.2s #9 [webbuild 2/7] WORKDIR /web #9 CACHED #10 [webbuild 3/7] COPY web/package.json web/package-lock.json* ./ #10 CACHED #11 [runtime 2/9] WORKDIR /srv/app #11 CACHED #12 [pybuild 2/7] WORKDIR /build #12 CACHED #13 [webbuild 4/7] RUN npm install --no-audit --no-fund #13 CACHED #14 [pybuild 3/7] RUN pip install --no-cache-dir --upgrade pip #14 CACHED #15 [runtime 3/9] RUN pip install --no-cache-dir --upgrade pip #15 CACHED #16 [pybuild 4/7] COPY pyproject.toml ./ #16 DONE 0.2s #17 [runtime 4/9] COPY pyproject.toml ./ #17 DONE 0.2s #18 [runtime 5/9] RUN pip install --no-cache-dir . #18 1.467 Processing ./. #18 1.469 Installing build dependencies: started #18 ... #19 [webbuild 5/7] COPY web/ ./ #19 DONE 2.6s #20 [pybuild 5/7] RUN pip install --no-cache-dir . #20 0.928 Processing ./. #20 0.930 Installing build dependencies: started #20 2.017 Installing build dependencies: finished with status 'done' #20 2.017 Getting requirements to build wheel: started #20 2.611 Getting requirements to build wheel: finished with status 'done' #20 2.612 Preparing metadata (pyproject.toml): started #20 2.821 Preparing metadata (pyproject.toml): finished with status 'done' #20 3.142 Collecting Pillow>=10 (from dutyfreeprofessor==0.1.0) #20 3.207 Downloading pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.1 kB) #20 3.232 Collecting python-multipart>=0.0.9 (from dutyfreeprofessor==0.1.0) #20 3.247 Downloading python_multipart-0.0.32-py3-none-any.whl.metadata (2.1 kB) #20 3.295 Collecting fastapi>=0.115 (from dutyfreeprofessor==0.1.0) #20 3.310 Downloading fastapi-0.141.1-py3-none-any.whl.metadata (27 kB) #20 3.353 Collecting uvicorn>=0.32 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 3.367 Downloading uvicorn-0.52.4-py3-none-any.whl.metadata (6.6 kB) #20 3.675 Collecting sqlalchemy>=2.0 (from dutyfreeprofessor==0.1.0) #20 3.689 Downloading sqlalchemy-2.0.52-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.6 kB) #20 3.722 Collecting alembic>=1.14 (from dutyfreeprofessor==0.1.0) #20 3.736 Downloading alembic-1.19.2-py3-none-any.whl.metadata (7.3 kB) #20 3.762 Collecting psycopg>=3.2 (from psycopg[binary]>=3.2->dutyfreeprofessor==0.1.0) #20 3.777 Downloading psycopg-3.3.5-py3-none-any.whl.metadata (4.3 kB) #20 3.903 Collecting pydantic>=2.9 (from dutyfreeprofessor==0.1.0) #20 3.919 Downloading pydantic-2.13.5-py3-none-any.whl.metadata (110 kB) #20 3.968 Collecting pydantic-settings>=2.6 (from dutyfreeprofessor==0.1.0) #20 3.988 Downloading pydantic_settings-2.15.0-py3-none-any.whl.metadata (3.9 kB) #20 4.079 Collecting curl-cffi>=0.7 (from dutyfreeprofessor==0.1.0) #20 4.096 Downloading curl_cffi-0.16.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (17 kB) #20 4.120 Collecting python-dateutil>=2.9 (from dutyfreeprofessor==0.1.0) #20 4.134 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) #20 4.169 Collecting Mako (from alembic>=1.14->dutyfreeprofessor==0.1.0) #20 4.184 Downloading mako-1.4.1-py3-none-any.whl.metadata (2.9 kB) #20 4.213 Collecting typing-extensions>=4.12 (from alembic>=1.14->dutyfreeprofessor==0.1.0) #20 4.228 Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB) #20 4.367 Collecting cffi>=2.0.0 (from curl-cffi>=0.7->dutyfreeprofessor==0.1.0) #20 4.381 Downloading cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB) #20 4.406 Collecting certifi>=2024.2.2 (from curl-cffi>=0.7->dutyfreeprofessor==0.1.0) #20 4.420 Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) #20 4.440 Collecting pycparser (from cffi>=2.0.0->curl-cffi>=0.7->dutyfreeprofessor==0.1.0) #20 4.455 Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) #20 4.489 Collecting starlette>=0.46.0 (from fastapi>=0.115->dutyfreeprofessor==0.1.0) #20 4.504 Downloading starlette-1.6.0-py3-none-any.whl.metadata (6.4 kB) #20 4.524 Collecting typing-inspection>=0.4.2 (from fastapi>=0.115->dutyfreeprofessor==0.1.0) #20 4.539 Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB) #20 4.563 Collecting annotated-doc>=0.0.2 (from fastapi>=0.115->dutyfreeprofessor==0.1.0) #20 4.578 Downloading annotated_doc-0.0.5-py3-none-any.whl.metadata (6.5 kB) #20 4.756 Collecting psycopg-binary==3.3.5 (from psycopg[binary]>=3.2->dutyfreeprofessor==0.1.0) #20 4.777 Downloading psycopg_binary-3.3.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB) #20 4.797 Collecting annotated-types>=0.6.0 (from pydantic>=2.9->dutyfreeprofessor==0.1.0) #20 4.814 Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB) #20 5.558 Collecting pydantic-core==2.46.5 (from pydantic>=2.9->dutyfreeprofessor==0.1.0) #20 5.574 Downloading pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB) #20 5.601 Collecting python-dotenv>=0.21.0 (from pydantic-settings>=2.6->dutyfreeprofessor==0.1.0) #20 5.618 Downloading python_dotenv-1.2.3-py3-none-any.whl.metadata (29 kB) #20 5.642 Collecting six>=1.5 (from python-dateutil>=2.9->dutyfreeprofessor==0.1.0) #20 5.657 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) #20 5.819 Collecting greenlet>=1 (from sqlalchemy>=2.0->dutyfreeprofessor==0.1.0) #20 5.835 Downloading greenlet-3.5.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB) #20 5.863 Collecting anyio<5,>=3.6.2 (from starlette>=0.46.0->fastapi>=0.115->dutyfreeprofessor==0.1.0) #20 5.878 Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB) #20 5.902 Collecting idna>=2.8 (from anyio<5,>=3.6.2->starlette>=0.46.0->fastapi>=0.115->dutyfreeprofessor==0.1.0) #20 5.916 Downloading idna-3.19-py3-none-any.whl.metadata (9.2 kB) #20 5.943 Collecting click>=7.0 (from uvicorn>=0.32->uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 5.957 Downloading click-8.5.0-py3-none-any.whl.metadata (2.6 kB) #20 5.976 Collecting h11>=0.8 (from uvicorn>=0.32->uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 5.992 Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) #20 6.036 Collecting httptools>=0.8.0 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 6.051 Downloading httptools-0.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (3.5 kB) #20 6.097 Collecting pyyaml>=5.1 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 6.111 Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) #20 6.155 Collecting uvloop>=0.15.1 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 6.171 Downloading uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (4.9 kB) #20 6.277 Collecting watchfiles>=0.20 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 6.292 Downloading watchfiles-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) #20 6.411 Collecting websockets>=13.0 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #20 6.425 Downloading websockets-17.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.3 kB) #20 6.485 Collecting MarkupSafe>=2.0 (from Mako->alembic>=1.14->dutyfreeprofessor==0.1.0) #20 6.500 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) #20 6.519 Downloading alembic-1.19.2-py3-none-any.whl (267 kB) #20 6.555 Downloading curl_cffi-0.16.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.5 MB) #20 6.824 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.5/13.5 MB 50.4 MB/s 0:00:00 #20 6.835 Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) #20 6.854 Downloading cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (221 kB) #20 6.872 Downloading fastapi-0.141.1-py3-none-any.whl (131 kB) #20 6.889 Downloading annotated_doc-0.0.5-py3-none-any.whl (5.3 kB) #20 6.907 Downloading pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.9 MB) #20 6.989 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 85.1 MB/s 0:00:00 #20 7.000 Downloading psycopg-3.3.5-py3-none-any.whl (213 kB) #20 7.020 Downloading psycopg_binary-3.3.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.2 MB) #20 7.072 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 103.0 MB/s 0:00:00 #20 7.084 Downloading pydantic-2.13.5-py3-none-any.whl (472 kB) #20 7.106 Downloading pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB) #20 7.128 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 106.8 MB/s 0:00:00 #20 7.142 Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB) #20 7.168 Downloading pydantic_settings-2.15.0-py3-none-any.whl (69 kB) #20 7.183 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) #20 7.201 Downloading python_dotenv-1.2.3-py3-none-any.whl (22 kB) #20 7.215 Downloading python_multipart-0.0.32-py3-none-any.whl (30 kB) #20 7.230 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) #20 7.244 Downloading sqlalchemy-2.0.52-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB) #20 7.276 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 113.3 MB/s 0:00:00 #20 7.288 Downloading greenlet-3.5.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (621 kB) #20 7.295 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 621.4/621.4 kB 119.0 MB/s 0:00:00 #20 7.310 Downloading starlette-1.6.0-py3-none-any.whl (75 kB) #20 7.326 Downloading anyio-4.15.1-py3-none-any.whl (132 kB) #20 7.342 Downloading idna-3.19-py3-none-any.whl (68 kB) #20 7.359 Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB) #20 7.373 Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB) #20 7.389 Downloading uvicorn-0.52.4-py3-none-any.whl (79 kB) #20 7.404 Downloading click-8.5.0-py3-none-any.whl (125 kB) #20 7.420 Downloading h11-0.16.0-py3-none-any.whl (37 kB) #20 7.435 Downloading httptools-0.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (523 kB) #20 7.456 Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (807 kB) #20 7.464 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 807.9/807.9 kB 108.5 MB/s 0:00:00 #20 7.480 Downloading uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (4.4 MB) #20 7.521 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 113.5 MB/s 0:00:00 #20 7.533 Downloading watchfiles-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (456 kB) #20 7.553 Downloading websockets-17.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (224 kB) #20 7.574 Downloading mako-1.4.1-py3-none-any.whl (80 kB) #20 7.589 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) #20 7.604 Downloading pycparser-3.0-py3-none-any.whl (48 kB) #20 7.792 Building wheels for collected packages: dutyfreeprofessor #20 7.793 Building wheel for dutyfreeprofessor (pyproject.toml): started #20 7.979 Building wheel for dutyfreeprofessor (pyproject.toml): finished with status 'done' #20 7.979 Created wheel for dutyfreeprofessor: filename=dutyfreeprofessor-0.1.0-py3-none-any.whl size=1245 sha256=ac33e02b53e3ed09430c921b701629bab106ec6a81215b7f0498fcf22b6019ce #20 7.979 Stored in directory: /tmp/pip-ephem-wheel-cache-r6a2x869/wheels/7f/5c/67/61a4ca28ccbc7df61f55a044560f100aa81c66ef20585de495 #20 7.981 Successfully built dutyfreeprofessor #20 8.074 Installing collected packages: websockets, uvloop, typing-extensions, six, pyyaml, python-multipart, python-dotenv, pycparser, psycopg-binary, Pillow, MarkupSafe, idna, httptools, h11, greenlet, click, certifi, annotated-types, annotated-doc, uvicorn, typing-inspection, sqlalchemy, python-dateutil, pydantic-core, psycopg, Mako, cffi, anyio, watchfiles, starlette, pydantic, curl-cffi, alembic, pydantic-settings, fastapi, dutyfreeprofessor #20 ... #18 [runtime 5/9] RUN pip install --no-cache-dir . #18 2.954 Installing build dependencies: finished with status 'done' #18 2.954 Getting requirements to build wheel: started #18 3.767 Getting requirements to build wheel: finished with status 'done' #18 3.768 Preparing metadata (pyproject.toml): started #18 4.664 Preparing metadata (pyproject.toml): finished with status 'done' #18 4.947 Collecting Pillow>=10 (from dutyfreeprofessor==0.1.0) #18 5.013 Downloading pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.1 kB) #18 5.036 Collecting python-multipart>=0.0.9 (from dutyfreeprofessor==0.1.0) #18 5.048 Downloading python_multipart-0.0.32-py3-none-any.whl.metadata (2.1 kB) #18 5.104 Collecting fastapi>=0.115 (from dutyfreeprofessor==0.1.0) #18 5.121 Downloading fastapi-0.141.1-py3-none-any.whl.metadata (27 kB) #18 5.162 Collecting uvicorn>=0.32 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 5.177 Downloading uvicorn-0.52.4-py3-none-any.whl.metadata (6.6 kB) #18 5.473 Collecting sqlalchemy>=2.0 (from dutyfreeprofessor==0.1.0) #18 5.487 Downloading sqlalchemy-2.0.52-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.6 kB) #18 5.518 Collecting alembic>=1.14 (from dutyfreeprofessor==0.1.0) #18 5.534 Downloading alembic-1.19.2-py3-none-any.whl.metadata (7.3 kB) #18 5.557 Collecting psycopg>=3.2 (from psycopg[binary]>=3.2->dutyfreeprofessor==0.1.0) #18 5.574 Downloading psycopg-3.3.5-py3-none-any.whl.metadata (4.3 kB) #18 5.681 Collecting pydantic>=2.9 (from dutyfreeprofessor==0.1.0) #18 5.696 Downloading pydantic-2.13.5-py3-none-any.whl.metadata (110 kB) #18 5.744 Collecting pydantic-settings>=2.6 (from dutyfreeprofessor==0.1.0) #18 5.759 Downloading pydantic_settings-2.15.0-py3-none-any.whl.metadata (3.9 kB) #18 5.829 Collecting curl-cffi>=0.7 (from dutyfreeprofessor==0.1.0) #18 5.845 Downloading curl_cffi-0.16.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (17 kB) #18 5.866 Collecting python-dateutil>=2.9 (from dutyfreeprofessor==0.1.0) #18 5.882 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) #18 5.908 Collecting Mako (from alembic>=1.14->dutyfreeprofessor==0.1.0) #18 5.924 Downloading mako-1.4.1-py3-none-any.whl.metadata (2.9 kB) #18 5.946 Collecting typing-extensions>=4.12 (from alembic>=1.14->dutyfreeprofessor==0.1.0) #18 5.962 Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB) #18 6.075 Collecting cffi>=2.0.0 (from curl-cffi>=0.7->dutyfreeprofessor==0.1.0) #18 6.091 Downloading cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB) #18 6.113 Collecting certifi>=2024.2.2 (from curl-cffi>=0.7->dutyfreeprofessor==0.1.0) #18 6.129 Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) #18 6.162 Collecting pycparser (from cffi>=2.0.0->curl-cffi>=0.7->dutyfreeprofessor==0.1.0) #18 6.180 Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) #18 6.229 Collecting starlette>=0.46.0 (from fastapi>=0.115->dutyfreeprofessor==0.1.0) #18 6.244 Downloading starlette-1.6.0-py3-none-any.whl.metadata (6.4 kB) #18 6.264 Collecting typing-inspection>=0.4.2 (from fastapi>=0.115->dutyfreeprofessor==0.1.0) #18 6.280 Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB) #18 6.296 Collecting annotated-doc>=0.0.2 (from fastapi>=0.115->dutyfreeprofessor==0.1.0) #18 6.310 Downloading annotated_doc-0.0.5-py3-none-any.whl.metadata (6.5 kB) #18 6.481 Collecting psycopg-binary==3.3.5 (from psycopg[binary]>=3.2->dutyfreeprofessor==0.1.0) #18 6.497 Downloading psycopg_binary-3.3.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB) #18 6.518 Collecting annotated-types>=0.6.0 (from pydantic>=2.9->dutyfreeprofessor==0.1.0) #18 6.533 Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB) #18 7.440 Collecting pydantic-core==2.46.5 (from pydantic>=2.9->dutyfreeprofessor==0.1.0) #18 7.457 Downloading pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB) #18 7.490 Collecting python-dotenv>=0.21.0 (from pydantic-settings>=2.6->dutyfreeprofessor==0.1.0) #18 7.505 Downloading python_dotenv-1.2.3-py3-none-any.whl.metadata (29 kB) #18 7.530 Collecting six>=1.5 (from python-dateutil>=2.9->dutyfreeprofessor==0.1.0) #18 7.549 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) #18 7.710 Collecting greenlet>=1 (from sqlalchemy>=2.0->dutyfreeprofessor==0.1.0) #18 7.726 Downloading greenlet-3.5.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB) #18 7.754 Collecting anyio<5,>=3.6.2 (from starlette>=0.46.0->fastapi>=0.115->dutyfreeprofessor==0.1.0) #18 7.769 Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB) #18 7.791 Collecting idna>=2.8 (from anyio<5,>=3.6.2->starlette>=0.46.0->fastapi>=0.115->dutyfreeprofessor==0.1.0) #18 7.805 Downloading idna-3.19-py3-none-any.whl.metadata (9.2 kB) #18 7.830 Collecting click>=7.0 (from uvicorn>=0.32->uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 7.846 Downloading click-8.5.0-py3-none-any.whl.metadata (2.6 kB) #18 7.863 Collecting h11>=0.8 (from uvicorn>=0.32->uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 7.878 Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) #18 7.915 Collecting httptools>=0.8.0 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 7.930 Downloading httptools-0.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (3.5 kB) #18 7.974 Collecting pyyaml>=5.1 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 7.990 Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) #18 8.037 Collecting uvloop>=0.15.1 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 8.059 Downloading uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (4.9 kB) #18 8.146 Collecting watchfiles>=0.20 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 8.162 Downloading watchfiles-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) #18 8.283 Collecting websockets>=13.0 (from uvicorn[standard]>=0.32->dutyfreeprofessor==0.1.0) #18 8.298 Downloading websockets-17.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.3 kB) #18 8.364 Collecting MarkupSafe>=2.0 (from Mako->alembic>=1.14->dutyfreeprofessor==0.1.0) #18 8.380 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) #18 8.402 Downloading alembic-1.19.2-py3-none-any.whl (267 kB) #18 8.439 Downloading curl_cffi-0.16.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.5 MB) #18 8.620 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.5/13.5 MB 76.1 MB/s 0:00:00 #18 8.633 Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) #18 8.652 Downloading cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (221 kB) #18 8.671 Downloading fastapi-0.141.1-py3-none-any.whl (131 kB) #18 8.688 Downloading annotated_doc-0.0.5-py3-none-any.whl (5.3 kB) #18 8.703 Downloading pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.9 MB) #18 8.764 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 115.9 MB/s 0:00:00 #18 8.779 Downloading psycopg-3.3.5-py3-none-any.whl (213 kB) #18 8.799 Downloading psycopg_binary-3.3.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.2 MB) #18 8.844 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 117.0 MB/s 0:00:00 #18 8.863 Downloading pydantic-2.13.5-py3-none-any.whl (472 kB) #18 8.884 Downloading pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB) #18 8.902 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 122.4 MB/s 0:00:00 #18 8.915 Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB) #18 8.931 Downloading pydantic_settings-2.15.0-py3-none-any.whl (69 kB) #18 8.947 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) #18 8.973 Downloading python_dotenv-1.2.3-py3-none-any.whl (22 kB) #18 8.990 Downloading python_multipart-0.0.32-py3-none-any.whl (30 kB) #18 9.007 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) #18 9.025 Downloading sqlalchemy-2.0.52-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB) #18 9.057 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 123.7 MB/s 0:00:00 #18 9.076 Downloading greenlet-3.5.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (621 kB) #18 9.085 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 621.4/621.4 kB 437.4 MB/s 0:00:00 #18 9.101 Downloading starlette-1.6.0-py3-none-any.whl (75 kB) #18 9.118 Downloading anyio-4.15.1-py3-none-any.whl (132 kB) #18 9.137 Downloading idna-3.19-py3-none-any.whl (68 kB) #18 9.153 Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB) #18 9.169 Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB) #18 9.184 Downloading uvicorn-0.52.4-py3-none-any.whl (79 kB) #18 9.202 Downloading click-8.5.0-py3-none-any.whl (125 kB) #18 9.220 Downloading h11-0.16.0-py3-none-any.whl (37 kB) #18 9.239 Downloading httptools-0.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (523 kB) #18 9.260 Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (807 kB) #18 9.268 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 807.9/807.9 kB 114.5 MB/s 0:00:00 #18 9.287 Downloading uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (4.4 MB) #18 9.326 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 116.1 MB/s 0:00:00 #18 9.340 Downloading watchfiles-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (456 kB) #18 9.360 Downloading websockets-17.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (224 kB) #18 9.379 Downloading mako-1.4.1-py3-none-any.whl (80 kB) #18 9.396 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) #18 9.410 Downloading pycparser-3.0-py3-none-any.whl (48 kB) #18 9.591 Building wheels for collected packages: dutyfreeprofessor #18 9.592 Building wheel for dutyfreeprofessor (pyproject.toml): started #18 10.49 Building wheel for dutyfreeprofessor (pyproject.toml): finished with status 'done' #18 10.49 Created wheel for dutyfreeprofessor: filename=dutyfreeprofessor-0.1.0-py3-none-any.whl size=1245 sha256=30c8acc47304eb3d72e6e3588cc2040c16becda8ad29d664134c73686f064807 #18 10.49 Stored in directory: /tmp/pip-ephem-wheel-cache-8ipd5ex0/wheels/7f/08/7c/e2bb2c6e6b52d9fecc8b8664e106936cb7f4b872843d499b31 #18 10.49 Successfully built dutyfreeprofessor #18 10.59 Installing collected packages: websockets, uvloop, typing-extensions, six, pyyaml, python-multipart, python-dotenv, pycparser, psycopg-binary, Pillow, MarkupSafe, idna, httptools, h11, greenlet, click, certifi, annotated-types, annotated-doc, uvicorn, typing-inspection, sqlalchemy, python-dateutil, pydantic-core, psycopg, Mako, cffi, anyio, watchfiles, starlette, pydantic, curl-cffi, alembic, pydantic-settings, fastapi, dutyfreeprofessor #18 ... #20 [pybuild 5/7] RUN pip install --no-cache-dir . #20 12.11 #20 12.12 Successfully installed Mako-1.4.1 MarkupSafe-3.0.3 Pillow-12.3.0 alembic-1.19.2 annotated-doc-0.0.5 annotated-types-0.8.0 anyio-4.15.1 certifi-2026.7.22 cffi-2.1.1 click-8.5.0 curl-cffi-0.16.3 dutyfreeprofessor-0.1.0 fastapi-0.141.1 greenlet-3.5.5 h11-0.16.0 httptools-0.8.0 idna-3.19 psycopg-3.3.5 psycopg-binary-3.3.5 pycparser-3.0 pydantic-2.13.5 pydantic-core-2.46.5 pydantic-settings-2.15.0 python-dateutil-2.9.0.post0 python-dotenv-1.2.3 python-multipart-0.0.32 pyyaml-6.0.3 six-1.17.0 sqlalchemy-2.0.52 starlette-1.6.0 typing-extensions-4.16.0 typing-inspection-0.4.4 uvicorn-0.52.4 uvloop-0.22.1 watchfiles-1.2.0 websockets-17.1 #20 12.12 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. #20 DONE 12.4s #18 [runtime 5/9] RUN pip install --no-cache-dir . #18 ... #21 [pybuild 6/7] COPY app ./app #21 DONE 0.1s #22 [pybuild 7/7] RUN python -c "import json,pathlib; from app.main import app; pathlib.Path('openapi.json').write_text(json.dumps(app.openapi()))" #22 DONE 1.4s #18 [runtime 5/9] RUN pip install --no-cache-dir . #18 ... #23 [webbuild 6/7] COPY --from=pybuild /build/openapi.json ./openapi.json #23 DONE 0.1s #24 [webbuild 7/7] RUN npx openapi-typescript openapi.json -o src/api/schema.ts && npm run build #24 ... #18 [runtime 5/9] RUN pip install --no-cache-dir . #18 14.85 #18 14.85 Successfully installed Mako-1.4.1 MarkupSafe-3.0.3 Pillow-12.3.0 alembic-1.19.2 annotated-doc-0.0.5 annotated-types-0.8.0 anyio-4.15.1 certifi-2026.7.22 cffi-2.1.1 click-8.5.0 curl-cffi-0.16.3 dutyfreeprofessor-0.1.0 fastapi-0.141.1 greenlet-3.5.5 h11-0.16.0 httptools-0.8.0 idna-3.19 psycopg-3.3.5 psycopg-binary-3.3.5 pycparser-3.0 pydantic-2.13.5 pydantic-core-2.46.5 pydantic-settings-2.15.0 python-dateutil-2.9.0.post0 python-dotenv-1.2.3 python-multipart-0.0.32 pyyaml-6.0.3 six-1.17.0 sqlalchemy-2.0.52 starlette-1.6.0 typing-extensions-4.16.0 typing-inspection-0.4.4 uvicorn-0.52.4 uvloop-0.22.1 watchfiles-1.2.0 websockets-17.1 #18 14.85 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. #18 DONE 15.1s #25 [runtime 6/9] COPY app ./app #25 DONE 0.1s #26 [runtime 7/9] COPY alembic.ini ./ #26 DONE 0.1s #27 [runtime 8/9] COPY alembic ./alembic #27 DONE 0.1s #24 [webbuild 7/7] RUN npx openapi-typescript openapi.json -o src/api/schema.ts && npm run build #24 1.339 ✨ openapi-typescript 7.13.0 #24 1.504 🚀 openapi.json → src/api/schema.ts [170.8ms] #24 1.518 npm notice #24 1.518 npm notice New major version of npm available! 10.9.8 -> 12.0.2 #24 1.518 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2 #24 1.518 npm notice To update run: npm install -g npm@12.0.2 #24 1.518 npm notice #24 1.623 #24 1.623 > dutyfreeprofessor-web@0.11.4 build #24 1.623 > tsc -b && vite build #24 1.623 #24 4.728 src/pages/TodoPage.tsx(124,11): error TS2339: Property 'name' does not exist on type '{ author: string; commit: (name: string) => void; }'. #24 4.728 src/pages/TodoPage.tsx(124,17): error TS2339: Property 'setName' does not exist on type '{ author: string; commit: (name: string) => void; }'. #24 ERROR: process "/bin/sh -c npx openapi-typescript openapi.json -o src/api/schema.ts && npm run build" did not complete successfully: exit code: 1 ------ > [webbuild 7/7] RUN npx openapi-typescript openapi.json -o src/api/schema.ts && npm run build: 1.518 npm notice New major version of npm available! 10.9.8 -> 12.0.2 1.518 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2 1.518 npm notice To update run: npm install -g npm@12.0.2 1.518 npm notice 1.623 1.623 > dutyfreeprofessor-web@0.11.4 build 1.623 > tsc -b && vite build 1.623 4.728 src/pages/TodoPage.tsx(124,11): error TS2339: Property 'name' does not exist on type '{ author: string; commit: (name: string) => void; }'. 4.728 src/pages/TodoPage.tsx(124,17): error TS2339: Property 'setName' does not exist on type '{ author: string; commit: (name: string) => void; }'. ------ Dockerfile:21 -------------------- 19 | COPY web/ ./ 20 | COPY --from=pybuild /build/openapi.json ./openapi.json 21 | >>> RUN npx openapi-typescript openapi.json -o src/api/schema.ts && npm run build 22 | 23 | # --- stage 3: runtime --------------------------------------------------------- -------------------- failed to solve: process "/bin/sh -c npx openapi-typescript openapi.json -o src/api/schema.ts && npm run build" did not complete successfully: exit code: 1