Hi.
I have an application angular application for frontend purpose and php application for backend, also I have test service for nginx reverse proxy.
The porblem is, that angular app can’t reach backend service - it can’t resolve the hostname, but when I’m making ping or curl from the container - I don’t have a problem.
Please advice.
Docker-compose
version: '3'
services:
backend-app:
build:
dockerfile: dockerfile
context: ./backend
volumes:
- ./backend/code:/var/www/html
frontend-app:
depends_on:
- backend-nginx
build:
dockerfile: dockerfile
context: ./frontend
backend-nginx:
build:
dockerfile: dockerfile
context: ./backend-nginx
volumes:
- ./backend-nginx/code:/var/www/html
reverseproxy:
build:
dockerfile: dockerfile
context: ./reverseproxy
ports:
- '8090:80'
fontend-app dockerfile
FROM node:14.17.6 as build
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY ./code/package.json ./code/package-lock.json ./
RUN apt-get update || : && apt-get install python -y
RUN npm install node-sass -y
RUN npm rebuild node-sass
RUN npm install
COPY ./code .
RUN npm run build
FROM nginx
RUN apt-get update
RUN apt-get install host -y
COPY ./default.conf /etc/nginx/conf.d/default.conf
COPY --from=build /usr/src/app/dist /var/www/html
Backend-nginx dockerfile
FROM nginx
COPY ./default.conf /etc/nginx/conf.d/default.conf
Backend nginx configuration file - default.conf
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass backend-app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
Backend-app dockerfile
FROM php:7.4-fpm as php-build
RUN apt-get -y update
RUN apt-get -y install curl
RUN apt-get -y install zip
RUN apt-get -y install libzip-dev
RUN apt-get -y install libpng-dev
RUN docker-php-ext-install zip
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN docker-php-ext-configure gd && docker-php-ext-install gd
RUN mkdir -p /var/www/html/
COPY ./code /var/www/html
WORKDIR /var/www/html
RUN composer require "ext-gd:*" --ignore-platform-reqs
RUN composer require phpoffice/phpspreadsheet --with-all-dependencies
RUN composer install
RUN chmod -R 775 /var/www/html/storage/
RUN chmod -R 775 /var/www/html/bootstrap/cache