Bedrock + Docker(Wordpress Image) too many redirects issue

I am having issues getting a bedrock site up and running on Docker with docker-compose. I have a minimal setup using the wordpress image with mariadb. Everything spins up fine, and I am able to go through the install and access the admin, but the site won’t load. (too many redirects)

Here is my docker compose file:

version: '3'

services:
  db:
    image: mariadb:latest
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - 80:80
    volumes:
      - ./web:/var/www/html
      - ./config:/var/www/config
      - ./vendor:/var/www/vendor
      - ./.env:/var/www/.env
      - ./composer.json:/var/www/composer.json
      - ./wp-cli.yml:/var/www/wp-cli.yml
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:

and here is my .env file:

DB_NAME='wordpress'
DB_USER='wordpress'
DB_PASSWORD='wordpress'

# Optionally, you can use a data source name (DSN)
# When using a DSN, you can remove the DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST variables
# DATABASE_URL='mysql://wordpress:wordpress@db:3306/wordpress'

# Optional database variables
DB_HOST='db:3306'
# DB_PREFIX='wp_'

WP_ENV='development'
WP_HOME='http://localhost:80'
WP_SITEURL="${WP_HOME}/wp"

# Specify optional debug.log path
# WP_DEBUG_LOG='/path/to/debug.log'

# Generate your keys here: https://roots.io/salts.html
AUTH_KEY='redacted'
SECURE_AUTH_KEY='redacted'
LOGGED_IN_KEY='redacted'
NONCE_KEY='redacted'
AUTH_SALT='redacted'
SECURE_AUTH_SALT='redacted'
LOGGED_IN_SALT='redacted'
NONCE_SALT='redacted'

Any help would be greatly appreciated!

Just a stab here, but isn’t the port (:80) in the WP_HOME (http://localhost:80) environment variable redundant? Does omitting it fix the redirection issue?
And when you check the Developer Tools network tab (or your favorite tool for that), what are those Location headers? Do they always point to the same URL (which is already requested, hence the loop), or does it alternate?