jdholtz / auto-southwest-check-in

A Python script that automatically checks in to your Southwest flight 24 hours beforehand.
GNU General Public License v3.0
455 stars 87 forks source link

Docker container doesn't work when built with Podman on v6.1 #166

Closed winniethepoohbear closed 1 year ago

winniethepoohbear commented 1 year ago

Version

6.1

Description

Container doesn't start check-in. No console output unless running --verbose.

To Reproduce

  1. podman run -d localhost/auto-southwest-check-in:latest CONFIRMATION_NUMBER FIRST_NAME LAST_NAME

Expected Behavior

No response

Relevant logs and program output

2023-10-02 06:45:42 DEBUG MainProcess[log:23]: Initialized the application
2023-10-02 06:45:42 DEBUG MainProcess[main:112]: Auto-Southwest Check-In v6.1
2023-10-02 06:45:42 DEBUG MainProcess[main:113]: Called with 3 arguments
2023-10-02 06:45:43 DEBUG MainProcess[config:107]: Initializing configuration file
2023-10-02 06:45:43 DEBUG MainProcess[config:135]: Reading the configuration file
2023-10-02 06:45:43 DEBUG MainProcess[config:139]: No configuration file found. Using defaults
2023-10-02 06:45:43 DEBUG MainProcess[config:125]: Creating configurations for 1 reservations
2023-10-02 06:45:43 DEBUG MainProcess[main:137]: Reservation added through CLI arguments
2023-10-02 06:45:43 DEBUG MainProcess[main:142]: Monitoring 0 accounts and 1 reservations
2023-10-02 06:45:43 DEBUG Process-1[reservation_monitor:60]: Acquiring lock...
2023-10-02 06:45:43 DEBUG Process-1[reservation_monitor:62]: Lock acquired
2023-10-02 06:45:43 DEBUG Process-1[checkin_scheduler:50]: Refreshing headers for current session
2023-10-02 06:45:43 DEBUG Process-1[webdriver:124]: Starting webdriver for current session

Additional context

Building from 6.1 running with podman. The same environment has worked before changing to 6.x,

jdholtz commented 1 year ago

Thanks for reporting this. The docker container is working for me, so this may be a bit hard to debug from my side.

What OS are you running? Also, if you use the Docker image for v6.1 (I'm not very familiar with podman, but I'm guessing it works with docker images), do you get the same issue?

winniethepoohbear commented 1 year ago

This is on Fedora CoreOS as host. Right, podman is intended to work with Dockerfiles in a rootless enviornment. It has successfully worked with this project in the past.

jdholtz commented 1 year ago

I just used podman (built the image and pulled it) and did not run into any issues. If you try v5.1, does the container work fine (just in case something changed very recently with your environment)? Also, if you pull the image instead of building it -- podman pull docker://jdholtz/auto-southwest-check-in, do you get the same issue?

winniethepoohbear commented 1 year ago

Pulling your latest 6.1 image jdholtz/auto-southwest-check-in does work in the same environment. Building it myself and the same run command doesn't work. Here is the build command I'm using podman build --no-cache -f Dockerfile . -t auto-southwest-check-in

A prior image built from 5.1 did work at least getting to pulling up the reservation and scheduling check in.

jdholtz commented 1 year ago

That's strange that the latest image works, but not building it yourself -- the container works for me using the same build command. Is there a reason for not using the official image and instead building it yourself? It still is an issue, but I'm just interested in the use case.

winniethepoohbear commented 1 year ago

I think I started building it in the past when there was a fix but not a new official image available yet. I'd still like to understand why for the reproducibility aspect.

Is there additional debug I can look at considering the last log is this?: 2023-10-02 06:45:43 DEBUG Process-1[webdriver:124]: Starting webdriver for current session

jdholtz commented 1 year ago

Is there additional debug I can look at considering the last log is this?:

That is when the webdriver is initialized, so one thing you can do is actually manually see if the webdriver can start by execing into the container. Here are the steps to do that:

  1. podman run -d --entrypoint sleep localhost/auto-southwest-check-in:latest infinity to make the container sleep infinitely instead of running the script
  2. Exec into the pod: podman exec -it <container name> sh
  3. Enter the Python terminal: python
  4. In the Python terminal execute the following (one line at a time):
    from seleniumbase import Driver
    driver = Driver(headless=True, uc_cdp_events=True, undetectable=True)
    driver.get("https://mobile.southwest.com/check-in")

According to the logs, it should pause at the second line, so if it does, you can wait for it to timeout and see what the issue is. Let me know if all Python commands run without error though.

jdholtz commented 1 year ago

@winniethepoohbear also, could you attach a file of the podman build output? That may help me compare it with my output and detect a potential issue.

jdholtz commented 1 year ago

Hey @winniethepoohbear, do you have any updates regarding my comments above?

winniethepoohbear commented 1 year ago

Running python in the container image it hangs here and never returns: driver = Driver(headless=True, uc_cdp_events=True, undetectable=True) . Even without parameters or webdriver from selenium directly shows the same hang.

Here is the build output:

``` $ podman build --no-cache -f Dockerfile . -t auto-southwest-check-in STEP 1/8: FROM python:3.11-alpine STEP 2/8: WORKDIR /app --> a306f7b7fe01 STEP 3/8: RUN apk add --update --no-cache chromium gcompat fetch https://dl-cdn.alpinelinux.org/alpine/v3.17/main/x86_64/APKINDEX.tar.gz fetch https://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/APKINDEX.tar.gz (1/146) Installing brotli-libs (1.0.9-r9) (2/146) Installing libpng (1.6.39-r0) (3/146) Installing freetype (2.12.1-r0) (4/146) Installing fontconfig (2.14.1-r0) (5/146) Installing libfontenc (1.1.6-r0) (6/146) Installing mkfontscale (1.2.2-r1) (7/146) Installing font-opensans (0_git20210927-r1) (8/146) Installing pkgconf (1.9.4-r0) (9/146) Installing libblkid (2.38.1-r1) (10/146) Installing libmount (2.38.1-r1) (11/146) Installing pcre2 (10.42-r0) (12/146) Installing glib (2.74.7-r0) (13/146) Installing libxml2 (2.10.4-r0) (14/146) Installing shared-mime-info (2.2-r2) (15/146) Installing hicolor-icon-theme (0.17-r2) (16/146) Installing libjpeg-turbo (2.1.4-r0) (17/146) Installing libwebp (1.2.4-r3) (18/146) Installing zstd-libs (1.5.5-r0) (19/146) Installing tiff (4.4.0-r4) (20/146) Installing gdk-pixbuf (2.42.10-r0) (21/146) Installing gtk-update-icon-cache (3.24.36-r0) (22/146) Installing libxau (1.0.10-r0) (23/146) Installing libmd (1.0.4-r0) (24/146) Installing libbsd (0.11.7-r0) (25/146) Installing libxdmcp (1.1.4-r0) (26/146) Installing libxcb (1.15-r0) (27/146) Installing libx11 (1.8.4-r1) (28/146) Installing libxcomposite (0.4.5-r1) (29/146) Installing libxfixes (6.0.0-r0) (30/146) Installing libxrender (0.9.11-r0) (31/146) Installing libxcursor (1.2.1-r1) (32/146) Installing libxdamage (1.1.5-r1) (33/146) Installing libxext (1.3.5-r0) (34/146) Installing libxi (1.8-r0) (35/146) Installing libxinerama (1.1.5-r0) (36/146) Installing libxrandr (1.5.3-r0) (37/146) Installing libatk-1.0 (2.46.0-r0) (38/146) Installing libxtst (1.2.4-r0) (39/146) Installing dbus-libs (1.14.8-r0) (40/146) Installing at-spi2-core (2.46.0-r0) (41/146) Installing libatk-bridge-2.0 (2.46.0-r0) (42/146) Installing pixman (0.42.2-r0) (43/146) Installing cairo (1.17.6-r3) (44/146) Installing cairo-gobject (1.17.6-r3) (45/146) Installing avahi-libs (0.8-r6) (46/146) Installing gmp (6.2.1-r2) (47/146) Installing nettle (3.8.1-r0) (48/146) Installing p11-kit (0.24.1-r1) (49/146) Installing libtasn1 (4.19.0-r0) (50/146) Installing libunistring (1.1-r0) (51/146) Installing gnutls (3.7.8-r3) (52/146) Installing cups-libs (2.4.2-r3) (53/146) Installing libepoxy (1.5.10-r0) (54/146) Installing fribidi (1.0.12-r0) (55/146) Installing graphite2 (1.3.14-r2) (56/146) Installing harfbuzz (5.3.1-r1) (57/146) Installing libxft (2.3.7-r0) (58/146) Installing pango (1.50.13-r0) (59/146) Installing wayland-libs-client (1.21.0-r1) (60/146) Installing wayland-libs-cursor (1.21.0-r1) (61/146) Installing wayland-libs-egl (1.21.0-r1) (62/146) Installing xkeyboard-config (2.37-r0) (63/146) Installing libxkbcommon (1.4.1-r0) (64/146) Installing gtk+3.0 (3.24.36-r0) Executing gtk+3.0-3.24.36-r0.post-install (65/146) Installing mesa (22.2.5-r1) (66/146) Installing libgcc (12.2.1_git20220924-r4) (67/146) Installing libstdc++ (12.2.1_git20220924-r4) (68/146) Installing llvm15-libs (15.0.7-r0) (69/146) Installing hwdata-pci (0.364-r0) (70/146) Installing libpciaccess (0.17-r0) (71/146) Installing libdrm (2.4.114-r0) (72/146) Installing musl-fts (1.2.7-r3) (73/146) Installing libelf (0.187-r2) (74/146) Installing mesa-glapi (22.2.5-r1) (75/146) Installing mesa-dri-gallium (22.2.5-r1) (76/146) Installing eudev-libs (3.2.11-r4) (77/146) Installing libmagic (5.43-r0) (78/146) Installing file (5.43-r0) (79/146) Installing libice (1.0.10-r1) (80/146) Installing libsm (1.2.3-r1) (81/146) Installing libxt (1.2.1-r0) (82/146) Installing libxmu (1.1.4-r0) (83/146) Installing xset (1.2.4-r1) (84/146) Installing xprop (1.2.5-r1) (85/146) Installing xdg-utils (1.1.3-r4) (86/146) Installing libogg (1.3.5-r2) (87/146) Installing flac-libs (1.4.2-r0) (88/146) Installing aom-libs (3.5.0-r0) (89/146) Installing alsa-lib (1.2.8-r0) (90/146) Installing libatomic (12.2.1_git20220924-r4) (91/146) Installing sdl2 (2.26.5-r0) (92/146) Installing svt-av1-libs (1.3.0-r0) (93/146) Installing libass (0.16.0-r1) (94/146) Installing libdav1d (1.0.0-r2) (95/146) Installing lame (3.100-r2) (96/146) Installing opus (1.3.1-r1) (97/146) Installing libasyncns (0.8-r1) (98/146) Installing libltdl (2.4.7-r1) (99/146) Installing orc (0.4.33-r0) (100/146) Installing libvorbis (1.3.7-r0) (101/146) Installing libsndfile (1.1.0-r2) (102/146) Installing libgomp (12.2.1_git20220924-r4) (103/146) Installing soxr (0.1.3-r3) (104/146) Installing speexdsp (1.2.1-r0) (105/146) Installing tdb-libs (1.4.6-r0) (106/146) Installing libpulse (16.1-r6) (107/146) Installing cjson (1.7.15-r3) (108/146) Installing mbedtls (2.28.5-r0) (109/146) Installing librist (0.2.7-r0) (110/146) Installing libsrt (1.5.1-r0) (111/146) Installing libssh (0.10.5-r0) (112/146) Installing libtheora (1.1.1-r16) (113/146) Installing v4l-utils-libs (1.22.1-r2) (114/146) Installing libva (2.16.0-r0) (115/146) Installing libvdpau (1.5-r0) (116/146) Installing vidstab (1.1.0-r2) (117/146) Installing libvpx (1.12.0-r2) (118/146) Installing x264-libs (0.164_git20220602-r0) (119/146) Installing numactl (2.0.16-r1) (120/146) Installing x265-libs (3.5-r3) (121/146) Installing xvidcore (1.3.7-r1) (122/146) Installing libsodium (1.0.18-r2) (123/146) Installing libzmq (4.3.4-r1) (124/146) Installing ffmpeg-libs (5.1.3-r0) (125/146) Installing libevent (2.1.12-r5) (126/146) Installing wayland-libs-server (1.21.0-r1) (127/146) Installing mesa-gbm (22.2.5-r1) (128/146) Installing icu-data-en (72.1-r1) Executing icu-data-en-72.1-r1.post-install * * If you need ICU with non-English locales and legacy charset support, install * package icu-data-full. * (129/146) Installing icu-libs (72.1-r1) (130/146) Installing jsoncpp (1.9.5-r0) (131/146) Installing lcms2 (2.14-r0) (132/146) Installing minizip (1.2.13-r0) (133/146) Installing nspr (4.35-r0) (134/146) Installing nss (3.85-r1) (135/146) Installing pipewire-libs (0.3.61-r0) (136/146) Installing re2 (2022.06.01-r1) (137/146) Installing snappy (1.1.9-r4) (138/146) Installing libwoff2common (1.0.2-r2) (139/146) Installing libwoff2enc (1.0.2-r2) (140/146) Installing libgpg-error (1.46-r1) (141/146) Installing libgcrypt (1.10.1-r0) (142/146) Installing libxslt (1.1.37-r1) (143/146) Installing chromium (112.0.5615.165-r0) (144/146) Installing musl-obstack (1.2.3-r0) (145/146) Installing libucontext (1.2-r0) (146/146) Installing gcompat (1.1.0-r0) Executing busybox-1.35.0-r29.trigger Executing fontconfig-2.14.1-r0.trigger Executing mkfontscale-1.2.2-r1.trigger Executing glib-2.74.7-r0.trigger Executing shared-mime-info-2.2-r2.trigger Executing gdk-pixbuf-2.42.10-r0.trigger Executing gtk-update-icon-cache-3.24.36-r0.trigger OK: 554 MiB in 183 packages --> e2e873385737 STEP 4/8: COPY requirements.txt requirements.txt --> 07169e16e729 STEP 5/8: RUN pip3 install --upgrade pip && pip3 install --no-cache-dir -r requirements.txt Requirement already satisfied: pip in /usr/local/lib/python3.11/site-packages (22.3.1) Collecting pip Downloading pip-23.2.1-py3-none-any.whl (2.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 50.4 MB/s eta 0:00:00 Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 22.3.1 Uninstalling pip-22.3.1: Successfully uninstalled pip-22.3.1 Successfully installed pip-23.2.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv Collecting apprise==1.5.0 (from -r requirements.txt (line 1)) Obtaining dependency information for apprise==1.5.0 from https://files.pythonhosted.org/packages/25/8a/afc9d457a5d88e6ad8b2e02b202a709159becd88e52e7ebbdbfa4ed49b0d/apprise-1.5.0-py3-none-any.whl.metadata Downloading apprise-1.5.0-py3-none-any.whl.metadata (42 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.1/42.1 kB 7.8 MB/s eta 0:00:00 Collecting certifi==2023.07.22 (from -r requirements.txt (line 2)) Obtaining dependency information for certifi==2023.07.22 from https://files.pythonhosted.org/packages/4c/dd/2234eab22353ffc7d94e8d13177aaa050113286e93e7b40eae01fbf7c3d9/certifi-2023.7.22-py3-none-any.whl.metadata Downloading certifi-2023.7.22-py3-none-any.whl.metadata (2.2 kB) Collecting pytz==2023.3 (from -r requirements.txt (line 3)) Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 502.3/502.3 kB 30.9 MB/s eta 0:00:00 Collecting requests==2.31.0 (from -r requirements.txt (line 4)) Obtaining dependency information for requests==2.31.0 from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB) Collecting selenium==4.11.2 (from -r requirements.txt (line 5)) Obtaining dependency information for selenium==4.11.2 from https://files.pythonhosted.org/packages/10/56/8288d1813a68c1e0638515dbb777fce6d87d0d240e683216f956145310e6/selenium-4.11.2-py3-none-any.whl.metadata Downloading selenium-4.11.2-py3-none-any.whl.metadata (7.0 kB) Collecting seleniumbase==4.18.6 (from -r requirements.txt (line 6)) Obtaining dependency information for seleniumbase==4.18.6 from https://files.pythonhosted.org/packages/5f/97/238067d94f3e8a927224a889f99b4e405a77aebc991fe4e6f311eef66dd9/seleniumbase-4.18.6-py3-none-any.whl.metadata Downloading seleniumbase-4.18.6-py3-none-any.whl.metadata (80 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.0/80.0 kB 21.7 MB/s eta 0:00:00 Collecting requests-oauthlib (from apprise==1.5.0->-r requirements.txt (line 1)) Downloading requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB) Collecting click>=5.0 (from apprise==1.5.0->-r requirements.txt (line 1)) Obtaining dependency information for click>=5.0 from https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl.metadata Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB) Collecting markdown (from apprise==1.5.0->-r requirements.txt (line 1)) Obtaining dependency information for markdown from https://files.pythonhosted.org/packages/bb/c1/50caaec6cadc1c6adc8fe351e03bd646d6e4dd17f55fca0f4c8d7ea8d3e9/Markdown-3.5-py3-none-any.whl.metadata Downloading Markdown-3.5-py3-none-any.whl.metadata (7.1 kB) Collecting PyYAML (from apprise==1.5.0->-r requirements.txt (line 1)) Obtaining dependency information for PyYAML from https://files.pythonhosted.org/packages/03/5c/c4671451b2f1d76ebe352c0945d4cd13500adb5d05f5a51ee296d80152f7/PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl.metadata Downloading PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl.metadata (2.1 kB) Collecting charset-normalizer<4,>=2 (from requests==2.31.0->-r requirements.txt (line 4)) Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/7d/ca/d937d0c175cac51b7da9e7167d57685f908a89b01c8d4bc4950af1cd31fa/charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_x86_64.whl.metadata Downloading charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_x86_64.whl.metadata (32 kB) Collecting idna<4,>=2.5 (from requests==2.31.0->-r requirements.txt (line 4)) Downloading idna-3.4-py3-none-any.whl (61 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 228.4 MB/s eta 0:00:00 Collecting urllib3<3,>=1.21.1 (from requests==2.31.0->-r requirements.txt (line 4)) Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/26/40/9957270221b6d3e9a3b92fdfba80dd5c9661ff45a664b47edd5d00f707f5/urllib3-2.0.6-py3-none-any.whl.metadata Downloading urllib3-2.0.6-py3-none-any.whl.metadata (6.6 kB) Collecting trio~=0.17 (from selenium==4.11.2->-r requirements.txt (line 5)) Obtaining dependency information for trio~=0.17 from https://files.pythonhosted.org/packages/a3/dd/b61fa61b186d3267ef3903048fbee29132963ae762fb70b08d4a3cd6f7aa/trio-0.22.2-py3-none-any.whl.metadata Downloading trio-0.22.2-py3-none-any.whl.metadata (4.7 kB) Collecting trio-websocket~=0.9 (from selenium==4.11.2->-r requirements.txt (line 5)) Obtaining dependency information for trio-websocket~=0.9 from https://files.pythonhosted.org/packages/48/be/a9ae5f50cad5b6f85bd2574c2c923730098530096e170c1ce7452394d7aa/trio_websocket-0.11.1-py3-none-any.whl.metadata Downloading trio_websocket-0.11.1-py3-none-any.whl.metadata (4.7 kB) Requirement already satisfied: pip>=23.2.1 in /usr/local/lib/python3.11/site-packages (from seleniumbase==4.18.6->-r requirements.txt (line 6)) (23.2.1) Collecting packaging>=23.1 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for packaging>=23.1 from https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl.metadata Downloading packaging-23.2-py3-none-any.whl.metadata (3.2 kB) Collecting wheel>=0.41.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for wheel>=0.41.2 from https://files.pythonhosted.org/packages/b8/8b/31273bf66016be6ad22bb7345c37ff350276cfd46e389a0c2ac5da9d9073/wheel-0.41.2-py3-none-any.whl.metadata Downloading wheel-0.41.2-py3-none-any.whl.metadata (2.2 kB) Collecting attrs>=23.1.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading attrs-23.1.0-py3-none-any.whl (61 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.2/61.2 kB 142.4 MB/s eta 0:00:00 Collecting platformdirs>=3.10.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for platformdirs>=3.10.0 from https://files.pythonhosted.org/packages/56/29/3ec311dc18804409ecf0d2b09caa976f3ae6215559306b5b530004e11156/platformdirs-3.11.0-py3-none-any.whl.metadata Downloading platformdirs-3.11.0-py3-none-any.whl.metadata (11 kB) Collecting parse>=1.19.1 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for parse>=1.19.1 from https://files.pythonhosted.org/packages/9c/57/6c51ccd70de3ebcfb0bb5b0eea2ac0ab13c51ab55043a7243faef9eb58ef/parse-1.19.1-py2.py3-none-any.whl.metadata Downloading parse-1.19.1-py2.py3-none-any.whl.metadata (20 kB) Collecting parse-type>=0.6.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for parse-type>=0.6.2 from https://files.pythonhosted.org/packages/ea/57/8a965284ef665bdb538693203ecf064232b89ba43cdab226f9e3d714ed1a/parse_type-0.6.2-py2.py3-none-any.whl.metadata Downloading parse_type-0.6.2-py2.py3-none-any.whl.metadata (12 kB) Collecting six==1.16.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Collecting chardet==5.2.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for chardet==5.2.0 from https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl.metadata Downloading chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB) Collecting charset-normalizer<4,>=2 (from requests==2.31.0->-r requirements.txt (line 4)) Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/6f/14/8e317fa69483a2823ea358a77e243c37f23f536a7add1b605460269593b5/charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl.metadata Downloading charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl.metadata (31 kB) Collecting pynose==1.4.8 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pynose==1.4.8 from https://files.pythonhosted.org/packages/6b/f2/5fb5ede365ecf152a205316e3f43cad9abc68f24b85e53a8408502ab5bab/pynose-1.4.8-py3-none-any.whl.metadata Downloading pynose-1.4.8-py3-none-any.whl.metadata (18 kB) Collecting sniffio==1.3.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading sniffio-1.3.0-py3-none-any.whl (10 kB) Collecting h11==0.14.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading h11-0.14.0-py3-none-any.whl (58 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 273.5 MB/s eta 0:00:00 Collecting outcome==1.2.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading outcome-1.2.0-py2.py3-none-any.whl (9.7 kB) Collecting trio-websocket~=0.9 (from selenium==4.11.2->-r requirements.txt (line 5)) Obtaining dependency information for trio-websocket~=0.9 from https://files.pythonhosted.org/packages/f2/25/868488d8b05104e3d1bf162565bbadd5fe6d62bf903710e6402c3aaceb1e/trio_websocket-0.10.4-py3-none-any.whl.metadata Downloading trio_websocket-0.10.4-py3-none-any.whl.metadata (4.6 kB) Collecting wsproto==1.2.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading wsproto-1.2.0-py3-none-any.whl (24 kB) Collecting cssselect==1.2.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading cssselect-1.2.0-py2.py3-none-any.whl (18 kB) Collecting sortedcontainers==2.4.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB) Collecting fasteners==0.18 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading fasteners-0.18-py3-none-any.whl (18 kB) Collecting execnet==2.0.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for execnet==2.0.2 from https://files.pythonhosted.org/packages/e8/9c/a079946da30fac4924d92dbc617e5367d454954494cf1e71567bcc4e00ee/execnet-2.0.2-py3-none-any.whl.metadata Downloading execnet-2.0.2-py3-none-any.whl.metadata (2.9 kB) Collecting iniconfig==2.0.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading iniconfig-2.0.0-py3-none-any.whl (5.9 kB) Collecting py==1.11.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading py-1.11.0-py2.py3-none-any.whl (98 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.7/98.7 kB 244.6 MB/s eta 0:00:00 Collecting pytest==7.4.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pytest==7.4.2 from https://files.pythonhosted.org/packages/df/d0/e192c4275aecabf74faa1aacd75ef700091913236ec78b1a98f62a2412ee/pytest-7.4.2-py3-none-any.whl.metadata Downloading pytest-7.4.2-py3-none-any.whl.metadata (7.9 kB) Collecting pytest-html==2.0.1 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading pytest_html-2.0.1-py2.py3-none-any.whl (15 kB) Collecting pytest-metadata==3.0.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pytest-metadata==3.0.0 from https://files.pythonhosted.org/packages/5c/a0/32d2a73f8428402d3017aec0cbb902ee21b363f421dc111d755c97332904/pytest_metadata-3.0.0-py3-none-any.whl.metadata Downloading pytest_metadata-3.0.0-py3-none-any.whl.metadata (8.6 kB) Collecting pytest-ordering==0.6 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading pytest_ordering-0.6-py3-none-any.whl (4.6 kB) Collecting pytest-rerunfailures==12.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pytest-rerunfailures==12.0 from https://files.pythonhosted.org/packages/25/14/e02206388902a828cc26894996dfc68eec50f7583bcddc4b5605d0c18b51/pytest_rerunfailures-12.0-py3-none-any.whl.metadata Downloading pytest_rerunfailures-12.0-py3-none-any.whl.metadata (18 kB) Collecting pytest-xdist==3.3.1 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pytest-xdist==3.3.1 from https://files.pythonhosted.org/packages/db/d1/70a67f79b31cb5cba09c96bc4590c6ac22608558664901df03fdee24f6a6/pytest_xdist-3.3.1-py3-none-any.whl.metadata Downloading pytest_xdist-3.3.1-py3-none-any.whl.metadata (3.1 kB) Collecting parameterized==0.9.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading parameterized-0.9.0-py2.py3-none-any.whl (20 kB) Collecting sbvirtualdisplay==1.2.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading sbvirtualdisplay-1.2.0-py2.py3-none-any.whl (13 kB) Collecting behave==1.2.6 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading behave-1.2.6-py2.py3-none-any.whl (136 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 136.8/136.8 kB 62.2 MB/s eta 0:00:00 Collecting beautifulsoup4==4.12.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading beautifulsoup4-4.12.2-py3-none-any.whl (142 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.0/143.0 kB 224.9 MB/s eta 0:00:00 Collecting pygments==2.16.1 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pygments==2.16.1 from https://files.pythonhosted.org/packages/43/88/29adf0b44ba6ac85045e63734ae0997d3c58d8b1a91c914d240828d0d73d/Pygments-2.16.1-py3-none-any.whl.metadata Downloading Pygments-2.16.1-py3-none-any.whl.metadata (2.5 kB) Collecting tabcompleter==1.3.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for tabcompleter==1.3.0 from https://files.pythonhosted.org/packages/ce/49/33f8e1e8cd7795f02e6b846231218538ad95dd6ff440e09ac0b8124baad4/tabcompleter-1.3.0-py3-none-any.whl.metadata Downloading tabcompleter-1.3.0-py3-none-any.whl.metadata (3.5 kB) Collecting pdbp==1.5.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pdbp==1.5.0 from https://files.pythonhosted.org/packages/de/62/20a9167df9789f042cffd4209cfd962572e2e640c8e8afe0f3644149a0b7/pdbp-1.5.0-py3-none-any.whl.metadata Downloading pdbp-1.5.0-py3-none-any.whl.metadata (7.1 kB) Collecting colorama==0.4.6 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Collecting exceptiongroup==1.1.3 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for exceptiongroup==1.1.3 from https://files.pythonhosted.org/packages/ad/83/b71e58666f156a39fb29417e4c8ca4bc7400c0dd4ed9e8842ab54dc8c344/exceptiongroup-1.1.3-py3-none-any.whl.metadata Downloading exceptiongroup-1.1.3-py3-none-any.whl.metadata (6.1 kB) Collecting pyotp==2.9.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pyotp==2.9.0 from https://files.pythonhosted.org/packages/c3/c0/c33c8792c3e50193ef55adb95c1c3c2786fe281123291c2dbf0eaab95a6f/pyotp-2.9.0-py3-none-any.whl.metadata Downloading pyotp-2.9.0-py3-none-any.whl.metadata (9.8 kB) Collecting mdurl==0.1.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Collecting rich==13.5.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for rich==13.5.2 from https://files.pythonhosted.org/packages/8d/5f/21a93b2ec205f4b79853ff6e838e3c99064d5dbe85ec6b05967506f14af0/rich-13.5.2-py3-none-any.whl.metadata Downloading rich-13.5.2-py3-none-any.whl.metadata (18 kB) Collecting setuptools>=68.2.2 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for setuptools>=68.2.2 from https://files.pythonhosted.org/packages/bb/26/7945080113158354380a12ce26873dd6c1ebd88d47f5bc24e2c5bb38c16a/setuptools-68.2.2-py3-none-any.whl.metadata Downloading setuptools-68.2.2-py3-none-any.whl.metadata (6.3 kB) Collecting filelock>=3.12.4 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for filelock>=3.12.4 from https://files.pythonhosted.org/packages/5e/5d/97afbafd9d584ff1b45fcb354a479a3609bd97f912f8f1f6c563cb1fae21/filelock-3.12.4-py3-none-any.whl.metadata Downloading filelock-3.12.4-py3-none-any.whl.metadata (2.8 kB) Collecting pluggy==1.3.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for pluggy==1.3.0 from https://files.pythonhosted.org/packages/05/b8/42ed91898d4784546c5f06c60506400548db3f7a4b3fb441cba4e5c17952/pluggy-1.3.0-py3-none-any.whl.metadata Downloading pluggy-1.3.0-py3-none-any.whl.metadata (4.3 kB) Collecting soupsieve==2.5 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for soupsieve==2.5 from https://files.pythonhosted.org/packages/4c/f3/038b302fdfbe3be7da016777069f26ceefe11a681055ea1f7817546508e3/soupsieve-2.5-py3-none-any.whl.metadata Downloading soupsieve-2.5-py3-none-any.whl.metadata (4.7 kB) Collecting markdown-it-py==3.0.0 (from seleniumbase==4.18.6->-r requirements.txt (line 6)) Obtaining dependency information for markdown-it-py==3.0.0 from https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl.metadata Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB) Collecting pysocks!=1.5.7,<2.0,>=1.5.6 (from urllib3<3,>=1.21.1->requests==2.31.0->-r requirements.txt (line 4)) Downloading PySocks-1.7.1-py3-none-any.whl (16 kB) Collecting oauthlib>=3.0.0 (from requests-oauthlib->apprise==1.5.0->-r requirements.txt (line 1)) Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.7/151.7 kB 209.2 MB/s eta 0:00:00 Downloading apprise-1.5.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 59.9 MB/s eta 0:00:00 Downloading certifi-2023.7.22-py3-none-any.whl (158 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 158.3/158.3 kB 106.4 MB/s eta 0:00:00 Downloading requests-2.31.0-py3-none-any.whl (62 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 kB 231.4 MB/s eta 0:00:00 Downloading selenium-4.11.2-py3-none-any.whl (7.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.2/7.2 MB 10.7 MB/s eta 0:00:00 Downloading seleniumbase-4.18.6-py3-none-any.whl (539 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 539.9/539.9 kB 119.0 MB/s eta 0:00:00 Downloading chardet-5.2.0-py3-none-any.whl (199 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 199.4/199.4 kB 148.1 MB/s eta 0:00:00 Downloading charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl (193 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 193.3/193.3 kB 231.0 MB/s eta 0:00:00 Downloading exceptiongroup-1.1.3-py3-none-any.whl (14 kB) Downloading execnet-2.0.2-py3-none-any.whl (37 kB) Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 321.1 MB/s eta 0:00:00 Downloading pdbp-1.5.0-py3-none-any.whl (17 kB) Downloading pluggy-1.3.0-py3-none-any.whl (18 kB) Downloading Pygments-2.16.1-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 56.2 MB/s eta 0:00:00 Downloading pynose-1.4.8-py3-none-any.whl (116 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 116.0/116.0 kB 244.0 MB/s eta 0:00:00 Downloading pyotp-2.9.0-py3-none-any.whl (13 kB) Downloading pytest-7.4.2-py3-none-any.whl (324 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 324.5/324.5 kB 125.6 MB/s eta 0:00:00 Downloading pytest_metadata-3.0.0-py3-none-any.whl (10 kB) Downloading pytest_rerunfailures-12.0-py3-none-any.whl (12 kB) Downloading pytest_xdist-3.3.1-py3-none-any.whl (41 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.8/41.8 kB 135.3 MB/s eta 0:00:00 Downloading rich-13.5.2-py3-none-any.whl (239 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 239.7/239.7 kB 198.8 MB/s eta 0:00:00 Downloading soupsieve-2.5-py3-none-any.whl (36 kB) Downloading tabcompleter-1.3.0-py3-none-any.whl (6.5 kB) Downloading trio-0.22.2-py3-none-any.whl (400 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 400.2/400.2 kB 112.2 MB/s eta 0:00:00 Downloading trio_websocket-0.10.4-py3-none-any.whl (17 kB) Downloading click-8.1.7-py3-none-any.whl (97 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 448.7 MB/s eta 0:00:00 Downloading filelock-3.12.4-py3-none-any.whl (11 kB) Downloading packaging-23.2-py3-none-any.whl (53 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.0/53.0 kB 359.5 MB/s eta 0:00:00 Downloading parse-1.19.1-py2.py3-none-any.whl (18 kB) Downloading parse_type-0.6.2-py2.py3-none-any.whl (26 kB) Downloading platformdirs-3.11.0-py3-none-any.whl (17 kB) Downloading setuptools-68.2.2-py3-none-any.whl (807 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 807.9/807.9 kB 107.6 MB/s eta 0:00:00 Downloading urllib3-2.0.6-py3-none-any.whl (123 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 123.8/123.8 kB 258.1 MB/s eta 0:00:00 Downloading wheel-0.41.2-py3-none-any.whl (64 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.8/64.8 kB 300.6 MB/s eta 0:00:00 Downloading Markdown-3.5-py3-none-any.whl (101 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.7/101.7 kB 276.5 MB/s eta 0:00:00 Downloading PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl (748 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 748.5/748.5 kB 121.5 MB/s eta 0:00:00 Installing collected packages: sortedcontainers, pytz, parse, wheel, urllib3, tabcompleter, soupsieve, sniffio, six, setuptools, sbvirtualdisplay, PyYAML, pysocks, pyotp, pynose, pygments, py, pluggy, platformdirs, parameterized, packaging, oauthlib, mdurl, markdown, iniconfig, idna, h11, filelock, fasteners, execnet, exceptiongroup, cssselect, colorama, click, charset-normalizer, chardet, certifi, attrs, wsproto, requests, pytest, pdbp, parse-type, outcome, markdown-it-py, beautifulsoup4, trio, rich, requests-oauthlib, pytest-xdist, pytest-rerunfailures, pytest-ordering, pytest-metadata, behave, trio-websocket, pytest-html, apprise, selenium, seleniumbase Attempting uninstall: wheel Found existing installation: wheel 0.40.0 Uninstalling wheel-0.40.0: Successfully uninstalled wheel-0.40.0 Attempting uninstall: setuptools Found existing installation: setuptools 65.5.1 Uninstalling setuptools-65.5.1: Successfully uninstalled setuptools-65.5.1 Successfully installed PyYAML-6.0.1 apprise-1.5.0 attrs-23.1.0 beautifulsoup4-4.12.2 behave-1.2.6 certifi-2023.7.22 chardet-5.2.0 charset-normalizer-3.2.0 click-8.1.7 colorama-0.4.6 cssselect-1.2.0 exceptiongroup-1.1.3 execnet-2.0.2 fasteners-0.18 filelock-3.12.4 h11-0.14.0 idna-3.4 iniconfig-2.0.0 markdown-3.5 markdown-it-py-3.0.0 mdurl-0.1.2 oauthlib-3.2.2 outcome-1.2.0 packaging-23.2 parameterized-0.9.0 parse-1.19.1 parse-type-0.6.2 pdbp-1.5.0 platformdirs-3.11.0 pluggy-1.3.0 py-1.11.0 pygments-2.16.1 pynose-1.4.8 pyotp-2.9.0 pysocks-1.7.1 pytest-7.4.2 pytest-html-2.0.1 pytest-metadata-3.0.0 pytest-ordering-0.6 pytest-rerunfailures-12.0 pytest-xdist-3.3.1 pytz-2023.3 requests-2.31.0 requests-oauthlib-1.3.1 rich-13.5.2 sbvirtualdisplay-1.2.0 selenium-4.11.2 seleniumbase-4.18.6 setuptools-68.2.2 six-1.16.0 sniffio-1.3.0 sortedcontainers-2.4.0 soupsieve-2.5 tabcompleter-1.3.0 trio-0.22.2 trio-websocket-0.10.4 urllib3-2.0.6 wheel-0.41.2 wsproto-1.2.0 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv --> ab2529409063 STEP 6/8: RUN sbase get chromedriver *** chromedriver to download = 112.0.5615.49 (Legacy Version) Downloading chromedriver_linux64.zip from: https://chromedriver.storage.googleapis.com/112.0.5615.49/chromedriver_linux64.zip ... Download Complete! Extracting ['chromedriver'] from chromedriver_linux64.zip ... Unzip Complete! The file [chromedriver] was saved to: /usr/local/lib/python3.11/site-packages/seleniumbase/drivers/chromedriver Making [chromedriver 112.0.5615.49] executable ... [chromedriver 112.0.5615.49] is now ready for use! --> 85f3a77aa337 STEP 7/8: COPY . . --> 0b1509ca411f STEP 8/8: ENTRYPOINT ["python3", "-u", "southwest.py"] COMMIT auto-southwest-check-in --> 80e00427471c Successfully tagged docker.io/jdholtz/auto-southwest-check-in:latest ```
jdholtz commented 1 year ago

Very strange. Maybe there’s a difference in the network configuration? I don’t really know any further approaches to this problem since I’m not able to reproduce it and the published Docker image works on Podman.

winniethepoohbear commented 1 year ago

I found some stackoverflow posts that said this might be the behavior when the chromedriver version isn't compatible.

Comparing the chromedriver versions shows the sget command from the build pulls the legacy version (112), while your published version seems to have the latest version (117).

Output from build:

STEP 6/8: RUN sbase get chromedriver

*** chromedriver to download = 112.0.5615.49 (Legacy Version)

Your published container:

>>> driver.capabilities['browserVersion']
'117.0.5938.62'

Specifying latest by changing the Dockerfile command to be sbase get chromedriver latest worked.

jdholtz commented 1 year ago

Looking through your build logs, this seems to be why its downloading the legacy version: (143/146) Installing chromium (112.0.5615.165-r0).

Here, it appears your apk database is out of date as I have 3.18:

fetch https://dl-cdn.alpinelinux.org/alpine/v3.17/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/APKINDEX.tar.gz

Do you have the latest Python 3.11 Alpine image? Maybe that image is really old (from a previous build) and it was just never upgraded which would explain downloading v112 of Chromedriver.

winniethepoohbear commented 1 year ago

Yes, you're right. The python base image was ~6 months old. Updating the base image also implicitly fixes the issue.

jdholtz commented 1 year ago

Good to hear. I wanted to have SeleniumBase download the driver matching the browser version, otherwise unexpected issues could occur (being detected by Southwest, the webdriver not starting, etc.). Therefore, I don’t want to add latest.

Now that it works and we know what the issue is (out of date Python Alpine image), can this issue be closed?

I recommend using the --pull flag when building the image as that will always pull any base images (which would mean this issue won’t occur again).