2

I'm trying to get my local dev environment setup using a combination of Docker which is serving a webapp that I'm developing, and Laravel Valet which is serving the API (being served on api.test).

What I can't figure out is how to hit the API from within the Docker container?

Dockerfile:

FROM php:5-apache

WORKDIR /var/www/html

COPY ./default.conf /etc/apache2/sites-available/000-default.conf

RUN apt-get update && \
  apt-get -y install curl git libicu-dev libpq-dev zlib1g-dev zip libmcrypt-dev libgd-dev && \
  docker-php-ext-install intl mbstring pcntl zip mcrypt && \
  usermod -u 1000 www-data && \
  usermod -a -G users www-data && \
  chown -R www-data:www-data /var/www && \
  curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
  a2enmod rewrite && \
  curl -sL https://deb.nodesource.com/setup_13.x | bash - && \
  apt-get install -y nodejs && \
  docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
  docker-php-ext-install gd

COPY . /var/www/html

docker-compose.yml:

version: '2'
services:
  web:
    build: .
    ports:
      - "8090:80"
    volumes:
      - .:/var/www/html
    network_mode: bridge
oldo.nicho
  • 2,149
  • 2
  • 25
  • 39

1 Answers1

3

Ok, finally figured this out thanks to some help from a friend.

I found the IP address of the host: ping host.docker.internal which gave me 192.168.65.2.

Then updated /etc/hosts file in the Docker container with:

192.168.65.2 api.test

(where api.test is the route that the API is being served on my localhost)

Now I can hit api.test from within the Docker container :-)

oldo.nicho
  • 2,149
  • 2
  • 25
  • 39