Python package not available at Web Application startup despite successful Oryx build
djmeck opened this issue · 2 comments
Bug Report
- At what date and time did you most recently experience the problem?
I am experiencing the problem right now.
- Where did you experience the problem? E.g. Azure Web Apps, Azure Functions, Azure Container Registry, or offline use.
I am experiencing the problem on Azure Web Apps.
- If your repo is publicly available please share its URL:
It is not.
- What happened?
The Python module psycopg2
is not available during web application startup, despite Oryx installing the package into the virtual environment successfully. Using the Kudu Bash web UI, I can see all the packages installed into the antenv in the /tmp/_preCompressedDestinationDir
, which according to the logs is compressed and moved to /home/site/wwwroot/output.tar.gz
. I can download this file and verify the package is installed there. This is the archive that according to the logs is used by the web application at startup time.
- What did you expect or want to happen?
I want the package that is installed into the antenv
to be available to the web application at startup.
- How can we reproduce it?
Linux App Service with Python 3.11 runtime, with the following requirements:
alembic==1.13.2; python_version >= '3.8'
annotated-types==0.7.0; python_version >= '3.8'
blinker==1.8.2; python_version >= '3.8'
certifi==2024.7.4; python_version >= '3.6'
charset-normalizer==3.3.2; python_full_version >= '3.7.0'
click==8.1.7; python_version >= '3.7'
dnspython==2.6.1; python_version >= '3.8'
email-validator==2.2.0
faker==27.4.0; python_version >= '3.8'
flask==3.0.3; python_version >= '3.8'
flask-openapi3==4.0.0rc2; python_version >= '3.8'
greenlet==3.0.3; python_version < '3.13' and (platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32'))))))
idna==3.7; python_version >= '3.5'
itsdangerous==2.2.0; python_version >= '3.8'
jinja2==3.1.4; python_version >= '3.7'
mako==1.3.5; python_version >= '3.8'
markupsafe==2.1.5; python_version >= '3.7'
numpy==1.26.4; python_version >= '3.9'
pandas==1.5.3; python_version >= '3.8'
psycopg==3.2.1; python_version >= '3.8'
pydantic[email]==2.8.2; python_version >= '3.8'
pydantic-core==2.20.1; python_version >= '3.8'
pydantic-settings==2.4.0; python_version >= '3.8'
python-dateutil==2.9.0.post0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
python-dotenv==1.0.1; python_version >= '3.8'
pytz==2024.1
pyyaml==6.0.2; python_version >= '3.8'
requests==2.32.3; python_version >= '3.8'
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
sqlalchemy==2.0.32; python_version >= '3.7'
typing-extensions==4.12.2; python_version >= '3.8'
urllib3==2.2.2; python_version >= '3.8'
werkzeug==3.0.4; python_version >= '3.8'
- Do you have log output? Please include between the backticks:
The Oryx build log showing the successful installation of all packages listed in my requirements.txt
:
2024-08-23T18:43:09 Fetching changes.
2024-08-23T18:43:09 Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/ec3cd1ca-58c0-488c-97e7-7769c1f5dcb9.zip (0.04 MB) to /tmp/zipdeploy/extracted
2024-08-23T18:43:13 Updating submodules.
2024-08-23T18:43:13 Preparing deployment for commit id 'b001bb80-5'.
2024-08-23T18:43:13 PreDeployment: context.CleanOutputPath False
2024-08-23T18:43:13 PreDeployment: context.OutputPath /home/site/wwwroot
2024-08-23T18:43:13 Repository path is /tmp/zipdeploy/extracted
2024-08-23T18:43:13 Running oryx build...
2024-08-23T18:43:13 Command: oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform python --platform-version 3.11 -p virtualenv_name=antenv --log-file /tmp/build-debug.log -i /tmp/8dcc3a371832e27 --compress-destination-dir | tee /tmp/oryx-build.log
2024-08-23T18:43:13 Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
2024-08-23T18:43:13 You can report issues at https://github.com/Microsoft/Oryx/issues
2024-08-23T18:43:13
2024-08-23T18:43:13 Oryx Version: 0.2.20240424.1, Commit: d37b2225a252ab2c04b4726024d047cf01ea1318, ReleaseTagName: 20240424.1
2024-08-23T18:43:13
2024-08-23T18:43:13 Build Operation ID: 68a2607b8628832e
2024-08-23T18:43:13 Repository Commit : b001bb80-5791-4554-9717-e9ad69ad9b15
2024-08-23T18:43:13 OS Type : bullseye
2024-08-23T18:43:13 Image Type : githubactions
2024-08-23T18:43:13
2024-08-23T18:43:13 Detecting platforms...
2024-08-23T18:43:14 Detected following platforms:
2024-08-23T18:43:14 python: 3.11.8
2024-08-23T18:43:14
2024-08-23T18:43:14 Using intermediate directory '/tmp/8dcc3a371832e27'.
2024-08-23T18:43:14
2024-08-23T18:43:15 Copying files to the intermediate directory...
2024-08-23T18:43:15 Done in 1 sec(s).
2024-08-23T18:43:15
2024-08-23T18:43:15 Source directory : /tmp/8dcc3a371832e27
2024-08-23T18:43:15 Destination directory: /home/site/wwwroot
2024-08-23T18:43:15
2024-08-23T18:43:15 Python Version: /tmp/oryx/platforms/python/3.11.8/bin/python3.11
2024-08-23T18:43:15 Creating directory for command manifest file if it does not exist
2024-08-23T18:43:15 Removing existing manifest file
2024-08-23T18:43:15 Python Virtual Environment: antenv
2024-08-23T18:43:15 Creating virtual environment...
2024-08-23T18:43:18 Activating virtual environment...
2024-08-23T18:43:18 Running pip install...
2024-08-23T18:43:33 [18:43:18+0000] adding trusted host: <REDACTED> (from line 3 of requirements.txt)
2024-08-23T18:43:33 [18:43:18+0000] Looking in indexes: https://pypi.python.org/simple, <REDACTED>
2024-08-23T18:43:33 [18:43:19+0000] Collecting alembic==1.13.2 (from -r requirements.txt (line 4))
2024-08-23T18:43:33 [18:43:19+0000] Using cached alembic-1.13.2-py3-none-any.whl.metadata (7.4 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting annotated-types==0.7.0 (from -r requirements.txt (line 5))
2024-08-23T18:43:33 [18:43:19+0000] Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting blinker==1.8.2 (from -r requirements.txt (line 6))
2024-08-23T18:43:33 [18:43:19+0000] Using cached blinker-1.8.2-py3-none-any.whl.metadata (1.6 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting certifi==2024.7.4 (from -r requirements.txt (line 7))
2024-08-23T18:43:33 [18:43:19+0000] Using cached certifi-2024.7.4-py3-none-any.whl.metadata (2.2 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting charset-normalizer==3.3.2 (from -r requirements.txt (line 8))
2024-08-23T18:43:33 [18:43:19+0000] Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting click==8.1.7 (from -r requirements.txt (line 9))
2024-08-23T18:43:33 [18:43:19+0000] Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting dnspython==2.6.1 (from -r requirements.txt (line 10))
2024-08-23T18:43:33 [18:43:19+0000] Using cached dnspython-2.6.1-py3-none-any.whl.metadata (5.8 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting email-validator==2.2.0 (from -r requirements.txt (line 11))
2024-08-23T18:43:33 [18:43:19+0000] Using cached email_validator-2.2.0-py3-none-any.whl.metadata (25 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting faker==27.4.0 (from -r requirements.txt (line 12))
2024-08-23T18:43:33 [18:43:19+0000] Using cached Faker-27.4.0-py3-none-any.whl.metadata (15 kB)
2024-08-23T18:43:33 [18:43:19+0000] Collecting <REDACTED> (from -r requirements.txt (line 13))
2024-08-23T18:43:33 [18:43:19+0000] Using cached <REDACTED> (27 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting flask==3.0.3 (from -r requirements.txt (line 14))
2024-08-23T18:43:33 [18:43:20+0000] Using cached flask-3.0.3-py3-none-any.whl.metadata (3.2 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting flask-openapi3==4.0.0rc2 (from -r requirements.txt (line 15))
2024-08-23T18:43:33 [18:43:20+0000] Using cached flask_openapi3-4.0.0rc2-py3-none-any.whl.metadata (8.5 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting greenlet==3.0.3 (from -r requirements.txt (line 16))
2024-08-23T18:43:33 [18:43:20+0000] Using cached greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting idna==3.7 (from -r requirements.txt (line 17))
2024-08-23T18:43:33 [18:43:20+0000] Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting itsdangerous==2.2.0 (from -r requirements.txt (line 18))
2024-08-23T18:43:33 [18:43:20+0000] Using cached itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting jinja2==3.1.4 (from -r requirements.txt (line 19))
2024-08-23T18:43:33 [18:43:20+0000] Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting mako==1.3.5 (from -r requirements.txt (line 20))
2024-08-23T18:43:33 [18:43:20+0000] Using cached Mako-1.3.5-py3-none-any.whl.metadata (2.9 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting markupsafe==2.1.5 (from -r requirements.txt (line 21))
2024-08-23T18:43:33 [18:43:20+0000] Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting numpy==1.26.4 (from -r requirements.txt (line 22))
2024-08-23T18:43:33 [18:43:20+0000] Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
2024-08-23T18:43:33 [18:43:20+0000] Collecting pandas==1.5.3 (from -r requirements.txt (line 23))
2024-08-23T18:43:33 [18:43:20+0000] Using cached pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
2024-08-23T18:43:33 [18:43:21+0000] Collecting psycopg==3.2.1 (from -r requirements.txt (line 24))
2024-08-23T18:43:33 [18:43:21+0000] Using cached psycopg-3.2.1-py3-none-any.whl.metadata (4.2 kB)
2024-08-23T18:43:33 [18:43:21+0000] Collecting pydantic==2.8.2 (from pydantic[email]==2.8.2->-r requirements.txt (line 25))
2024-08-23T18:43:33 [18:43:21+0000] Using cached pydantic-2.8.2-py3-none-any.whl.metadata (125 kB)
2024-08-23T18:43:33 [18:43:21+0000] Collecting pydantic-core==2.20.1 (from -r requirements.txt (line 26))
2024-08-23T18:43:33 [18:43:21+0000] Using cached pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
2024-08-23T18:43:33 [18:43:21+0000] Collecting pydantic-settings==2.4.0 (from -r requirements.txt (line 27))
2024-08-23T18:43:33 [18:43:21+0000] Using cached pydantic_settings-2.4.0-py3-none-any.whl.metadata (3.5 kB)
2024-08-23T18:43:33 [18:43:21+0000] Collecting python-dateutil==2.9.0.post0 (from -r requirements.txt (line 28))
2024-08-23T18:43:33 [18:43:21+0000] Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
2024-08-23T18:43:33 [18:43:21+0000] Collecting python-dotenv==1.0.1 (from -r requirements.txt (line 29))
2024-08-23T18:43:33 [18:43:21+0000] Using cached python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB)
2024-08-23T18:43:33 [18:43:22+0000] Collecting pytz==2024.1 (from -r requirements.txt (line 30))
2024-08-23T18:43:33 [18:43:22+0000] Using cached pytz-2024.1-py2.py3-none-any.whl.metadata (22 kB)
2024-08-23T18:43:33 [18:43:22+0000] Collecting pyyaml==6.0.2 (from -r requirements.txt (line 31))
2024-08-23T18:43:33 [18:43:22+0000] Using cached PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
2024-08-23T18:43:33 [18:43:22+0000] Collecting requests==2.32.3 (from -r requirements.txt (line 32))
2024-08-23T18:43:33 [18:43:22+0000] Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
2024-08-23T18:43:33 [18:43:22+0000] Collecting six==1.16.0 (from -r requirements.txt (line 33))
2024-08-23T18:43:33 [18:43:22+0000] Using cached six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
2024-08-23T18:43:33 [18:43:22+0000] Collecting sqlalchemy==2.0.32 (from -r requirements.txt (line 34))
2024-08-23T18:43:33 [18:43:22+0000] Using cached SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.6 kB)
2024-08-23T18:43:34 [18:43:22+0000] Collecting typing-extensions==4.12.2 (from -r requirements.txt (line 35))
2024-08-23T18:43:34 [18:43:22+0000] Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
2024-08-23T18:43:34 [18:43:22+0000] Collecting urllib3==2.2.2 (from -r requirements.txt (line 36))
2024-08-23T18:43:34 [18:43:22+0000] Using cached urllib3-2.2.2-py3-none-any.whl.metadata (6.4 kB)
2024-08-23T18:43:34 [18:43:22+0000] Collecting werkzeug==3.0.4 (from -r requirements.txt (line 37))
2024-08-23T18:43:34 [18:43:22+0000] Using cached werkzeug-3.0.4-py3-none-any.whl.metadata (3.7 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached alembic-1.13.2-py3-none-any.whl (232 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached blinker-1.8.2-py3-none-any.whl (9.5 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached certifi-2024.7.4-py3-none-any.whl (162 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached click-8.1.7-py3-none-any.whl (97 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached dnspython-2.6.1-py3-none-any.whl (307 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached email_validator-2.2.0-py3-none-any.whl (33 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached Faker-27.4.0-py3-none-any.whl (1.8 MB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached flask-3.0.3-py3-none-any.whl (101 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached flask_openapi3-4.0.0rc2-py3-none-any.whl (46 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (620 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached idna-3.7-py3-none-any.whl (66 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached itsdangerous-2.2.0-py3-none-any.whl (16 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached Mako-1.3.5-py3-none-any.whl (78 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.0 MB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached psycopg-3.2.1-py3-none-any.whl (197 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached pydantic-2.8.2-py3-none-any.whl (423 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached pydantic_settings-2.4.0-py3-none-any.whl (23 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached python_dotenv-1.0.1-py3-none-any.whl (19 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached pytz-2024.1-py2.py3-none-any.whl (505 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached requests-2.32.3-py3-none-any.whl (64 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached typing_extensions-4.12.2-py3-none-any.whl (37 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached urllib3-2.2.2-py3-none-any.whl (121 kB)
2024-08-23T18:43:34 [18:43:23+0000] Using cached werkzeug-3.0.4-py3-none-any.whl (227 kB)
2024-08-23T18:43:34 [18:43:23+0000] Installing collected packages: pytz, urllib3, typing-extensions, six, pyyaml, python-dotenv, numpy, markupsafe, itsdangerous, idna, greenlet, dnspython, click, charset-normalizer, certifi, blinker, annotated-types, werkzeug, sqlalchemy, requests, python-dateutil, pydantic-core, psycopg, mako, jinja2, email-validator, pydantic, pandas, flask, faker, alembic, pydantic-settings, flask-openapi3, <REDACTED>
2024-08-23T18:43:34 [18:43:32+0000] Successfully installed alembic-1.13.2 annotated-types-0.7.0 blinker-1.8.2 certifi-2024.7.4 charset-normalizer-3.3.2 click-8.1.7 dnspython-2.6.1 email-validator-2.2.0 faker-27.4.0 <REDACTED> flask-3.0.3 flask-openapi3-4.0.0rc2 greenlet-3.0.3 idna-3.7 itsdangerous-2.2.0 jinja2-3.1.4 mako-1.3.5 markupsafe-2.1.5 numpy-1.26.4 pandas-1.5.3 psycopg-3.2.1 pydantic-2.8.2 pydantic-core-2.20.1 pydantic-settings-2.4.0 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 pytz-2024.1 pyyaml-6.0.2 requests-2.32.3 six-1.16.0 sqlalchemy-2.0.32 typing-extensions-4.12.2 urllib3-2.2.2 werkzeug-3.0.4
2024-08-23T18:43:34
2024-08-23T18:43:34 [notice] A new release of pip is available: 24.0 -> 24.2
2024-08-23T18:43:34 [notice] To update, run: pip install --upgrade pip
2024-08-23T18:43:34 Not a vso image, so not writing build commands
2024-08-23T18:43:34 Preparing output...
2024-08-23T18:43:34
2024-08-23T18:43:34 Copying files to destination directory '/tmp/_preCompressedDestinationDir'...
2024-08-23T18:43:35 Done in 2 sec(s).
2024-08-23T18:43:35 Compressing content of directory '/tmp/_preCompressedDestinationDir'...
2024-08-23T18:43:46 Copied the compressed output to '/home/site/wwwroot'
2024-08-23T18:43:46
2024-08-23T18:43:46 Removing existing manifest file
2024-08-23T18:43:46 Creating a manifest file...
2024-08-23T18:43:46 Manifest file created.
2024-08-23T18:43:46 Copying .ostype to manifest output directory.
2024-08-23T18:43:46
2024-08-23T18:43:46 Done in 32 sec(s).
2024-08-23T18:43:46 Running post deployment command(s)...
2024-08-23T18:43:46
2024-08-23T18:43:46 Generating summary of Oryx build
2024-08-23T18:43:46 Parsing the build logs
2024-08-23T18:43:46 Found 0 issue(s)
2024-08-23T18:43:46
2024-08-23T18:43:46 Build Summary :
2024-08-23T18:43:46 ===============
2024-08-23T18:43:46 Errors (0)
2024-08-23T18:43:46 Warnings (0)
2024-08-23T18:43:46
2024-08-23T18:43:46 Triggering container recycle for OneDeploy by adding/updating restartTrigger.txt to the site root path
2024-08-23T18:43:46 Deployment successful. deployer = OneDeploy deploymentPath = OneDeploy
The web application startup log showing the failure to find the package:
2024-08-23T18:45:47.794799467Z _____
2024-08-23T18:45:47.794827867Z / _ \ __________ _________ ____
2024-08-23T18:45:47.794832767Z / /_\ \\___ / | \_ __ \_/ __ \
2024-08-23T18:45:47.794837267Z / | \/ /| | /| | \/\ ___/
2024-08-23T18:45:47.794841467Z \____|__ /_____ \____/ |__| \___ >
2024-08-23T18:45:47.794845467Z \/ \/ \/
2024-08-23T18:45:47.794849367Z A P P S E R V I C E O N L I N U X
2024-08-23T18:45:47.794853267Z
2024-08-23T18:45:47.794857367Z Documentation: http://aka.ms/webapp-linux
2024-08-23T18:45:47.794861567Z Python 3.11.8
2024-08-23T18:45:47.794865667Z Note: Any data outside '/home' is not persisted
2024-08-23T18:45:48.280107183Z Starting OpenBSD Secure Shell server: sshd.
2024-08-23T18:45:48.284017278Z WEBSITES_INCLUDE_CLOUD_CERTS is not set to true.
2024-08-23T18:45:48.310539440Z App Command Line not configured, will attempt auto-detect
2024-08-23T18:45:48.310590640Z Launching oryx with: create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -virtualEnvName antenv -defaultApp /opt/defaultsite
2024-08-23T18:45:48.314378535Z Found build manifest file at '/home/site/wwwroot/oryx-manifest.toml'. Deserializing it...
2024-08-23T18:45:48.315542333Z Build Operation ID: 68a2607b8628832e
2024-08-23T18:45:48.316126533Z Oryx Version: 0.2.20240501.1, Commit: f83f88d3cfb8bb6d3e2765e1dcd218eb0814a095, ReleaseTagName: 20240501.1
2024-08-23T18:45:48.316144733Z Output is compressed. Extracting it...
2024-08-23T18:45:48.316695232Z Extracting '/home/site/wwwroot/output.tar.gz' to directory '/tmp/8dcc3a371832e27'...
2024-08-23T18:45:50.730334434Z App path is set to '/tmp/8dcc3a371832e27'
2024-08-23T18:45:50.868641439Z Detected an app based on Flask
2024-08-23T18:45:50.869421838Z Generating `gunicorn` command for 'app:app'
2024-08-23T18:45:50.894139503Z Writing output script to '/opt/startup/startup.sh'
2024-08-23T18:45:50.967234501Z Using packages from virtual environment antenv located at /tmp/8dcc3a371832e27/antenv.
2024-08-23T18:45:50.967295300Z Updated PYTHONPATH to '/opt/startup/app_logs:/tmp/8dcc3a371832e27/antenv/lib/python3.11/site-packages'
2024-08-23T18:45:51.147252747Z [2024-08-23 18:45:51 +0000] [72] [INFO] Starting gunicorn 22.0.0
2024-08-23T18:45:51.153246139Z [2024-08-23 18:45:51 +0000] [72] [INFO] Listening at: http://0.0.0.0:8000 (72)
2024-08-23T18:45:51.153267139Z [2024-08-23 18:45:51 +0000] [72] [INFO] Using worker: sync
2024-08-23T18:45:51.156176435Z [2024-08-23 18:45:51 +0000] [75] [INFO] Booting worker with pid: 75
2024-08-23T18:45:54.147837925Z [2024-08-23 18:45:54 +0000] [75] [ERROR] Exception in worker process
2024-08-23T18:45:54.147872725Z Traceback (most recent call last):
2024-08-23T18:45:54.147988325Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker
2024-08-23T18:45:54.148007225Z worker.init_process()
2024-08-23T18:45:54.148011925Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/workers/base.py", line 134, in init_process
2024-08-23T18:45:54.148016625Z self.load_wsgi()
2024-08-23T18:45:54.148020625Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2024-08-23T18:45:54.148025225Z self.wsgi = self.app.wsgi()
2024-08-23T18:45:54.148029225Z ^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148033125Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/app/base.py", line 67, in wsgi
2024-08-23T18:45:54.148037425Z self.callable = self.load()
2024-08-23T18:45:54.148041425Z ^^^^^^^^^^^
2024-08-23T18:45:54.148045525Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2024-08-23T18:45:54.148050025Z return self.load_wsgiapp()
2024-08-23T18:45:54.148053625Z ^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148057325Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2024-08-23T18:45:54.148061625Z return util.import_app(self.app_uri)
2024-08-23T18:45:54.148065825Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148069725Z File "/opt/python/3.11.8/lib/python3.11/site-packages/gunicorn/util.py", line 371, in import_app
2024-08-23T18:45:54.148074025Z mod = importlib.import_module(module)
2024-08-23T18:45:54.148078525Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148082925Z File "/opt/python/3.11.8/lib/python3.11/importlib/__init__.py", line 126, in import_module
2024-08-23T18:45:54.148087624Z return _bootstrap._gcd_import(name[level:], package, level)
2024-08-23T18:45:54.148091824Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148095824Z File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
2024-08-23T18:45:54.148100324Z File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
2024-08-23T18:45:54.148104524Z File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
2024-08-23T18:45:54.148108724Z File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
2024-08-23T18:45:54.148113024Z File "<frozen importlib._bootstrap_external>", line 940, in exec_module
2024-08-23T18:45:54.148117224Z File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
2024-08-23T18:45:54.148121724Z File "/tmp/8dcc3a371832e27/app.py", line 5, in <module>
2024-08-23T18:45:54.148126124Z app = service.app.create_app()
2024-08-23T18:45:54.148130224Z ^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148140624Z File "/tmp/8dcc3a371832e27/service/app.py", line 68, in create_app
2024-08-23T18:45:54.148145424Z <REDACTED>
2024-08-23T18:45:54.148149624Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148154224Z File "/tmp/8dcc3a371832e27/<REDACTED>", line 224, in __init__
2024-08-23T18:45:54.148158424Z self.engine = create_engine(connection_string, echo=True)
2024-08-23T18:45:54.148162424Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148166524Z File "<string>", line 2, in create_engine
2024-08-23T18:45:54.148170824Z File "/tmp/8dcc3a371832e27/antenv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 281, in warned
2024-08-23T18:45:54.148175524Z return fn(*args, **kwargs) # type: ignore[no-any-return]
2024-08-23T18:45:54.148179724Z ^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148183924Z File "/tmp/8dcc3a371832e27/antenv/lib/python3.11/site-packages/sqlalchemy/engine/create.py", line 599, in create_engine
2024-08-23T18:45:54.148188324Z dbapi = dbapi_meth(**dbapi_args)
2024-08-23T18:45:54.148192524Z ^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-23T18:45:54.148197024Z File "/tmp/8dcc3a371832e27/antenv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 690, in import_dbapi
2024-08-23T18:45:54.148201124Z import psycopg2
2024-08-23T18:45:54.148205624Z ModuleNotFoundError: No module named 'psycopg2'
2024-08-23T18:45:54.148210724Z [2024-08-23 18:45:54 +0000] [75] [INFO] Worker exiting (pid: 75)
2024-08-23T18:45:54.148225624Z WARNING: unable to load api example [Errno 2] No such file or directory: <REDACTED>
2024-08-23T18:45:54.342125151Z [2024-08-23 18:45:54 +0000] [72] [ERROR] Worker (pid:75) exited with code 3
2024-08-23T18:45:54.342891250Z [2024-08-23 18:45:54 +0000] [72] [ERROR] Shutting down: Master
2024-08-23T18:45:54.342910050Z [2024-08-23 18:45:54 +0000] [72] [ERROR] Reason: Worker failed to boot.
Same problem here