Задать вопрос
kvaks
@kvaks

Как angular как собрать в docker-compose?

подскажите как запустить мой проект angular в докер контейнере
вот такой код проекта
project/

├── backend/
│ ├── Dockerfile
│ └── ...
├── frontend/
│ ├── Dockerfile
│ └── ...
├── docker-compose.yml

версия angular 18.2.11
nodejs v22.14.0

docker-compose.yml
version: '3.8'
name: task_manager

services:
  backend:
    build:
      context: ./backend
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    volumes:
      - ./backend:/app
    depends_on:
      - db

  frontend:
    build:
      context: ./frontend
      dockerfile: Dockerfile
    ports:
      - "4200:80"
    depends_on:
      - backend

  db:
    image: postgres:13
    environment:
      POSTGRES_USER: task_manager
      POSTGRES_PASSWORD: passw0rd
      POSTGRES_DB: task_manager
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:


Dockerfile
FROM node:16 AS build

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build -- --configuration production

FROM nginx:alpine

COPY --from=build /app/dist/frontend /usr/share/nginx/html
EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Для наличия нескольких Докерфайлов должно быть, имхо, очень веское основание. Обычно достаточно одного файла - и разделённых по разным стейджам проектов, это избавляет от кучи головной боли со взаимодействием с файлами выше по дереву каталогов.

Версии у вас, действительно, как-то разъехались - и тут тоже помог бы единый Докерфайл, в котором указаны все версии, а не в двух местах, как у вас сейчас.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы