Контейнеризація додатку на Angular за допомогою Docker

У сучасних робочих процесах розробки Docker став важливим інструментом для упакування додатків у контейнери. Контейнер — це легка, портативна та автономна одиниця, яка забезпечує безперебійне функціонування вашого додатку в різних середовищах. У цій статті ми розглянемо, як контейнеризувати простий додаток на Angular за допомогою Docker і керувати ним через Docker Compose, що спрощує процес розгортання та масштабування додатків.

pic

3. Розуміння структури проєкту

Надайте базове пояснення структури папок вашого додатку на Angular, зокрема, як вона виглядатиме після контейнеризації. Це допоможе читачам зрозуміти, де що знаходиться.

Приклад структури проєкту:

/my-node-app  
 ├── src  
 ├── package.json  
 ├── Dockerfile  
 ├── docker-compose.yml
  • src: Основна папка додатку на Angular.
  • package.json: Містить залежності та скрипти для запуску додатку.
  • Dockerfile: Текстовий файл, що містить інструкції для створення Docker-образу.
  • docker-compose.yml: Визначає сервіси та способи управління багатоконтейнерними налаштуваннями.

Ось конфігурація для контейнеризації Angular проєкту. Завдяки цій конфігурації ми можемо контейнеризувати додаток Angular.

файл Dockerfile

# Використовуємо офіційний образ Node.js для збірки Angular  
FROM node:16  

# Встановлюємо робочий каталог всередині контейнера  
WORKDIR /app  

# Копіюємо package.json та package-lock.json для встановлення залежностей  
COPY package*.json ./  

# Встановлюємо залежності Angular  
RUN npm install  

# Копіюємо код додатку в контейнер  
COPY . .  

# Будуємо додаток Angular  
RUN npm run build --prod  

# Використовуємо Nginx для обслуговування зібраного додатку Angular  
FROM nginx:alpine  
COPY --from=0 /app/dist /usr/share/nginx/html  

# Відкриваємо порт для додатку Angular  
EXPOSE 80  

# Запускаємо сервер Nginx  
CMD ["nginx", "-g", "daemon off;"]

Щоб зробити додаток готовим до виробництва, додайте файл compose docker-compose.yml

version: '3.8'
services:  
 app:  
 build:  
 context: .  
 dockerfile: Dockerfile  
 ports:  
 - "4200:4200"  
 environment:  
 - NODE_ENV=production  
 volumes:  
 - .:/usr/src/app  
 restart: always

Завдяки цьому ми можемо керувати різними середовищами та також додавати інші сервіси, такі як Postgres або MySQL, чи навіть будь-які сервіси для сповіщень.

Щоб отримати доступ до більше статей, приєднуйтесь до нашої спільноти на Discord для кращого навчального досвіду https://discord.gg/D2EU5N6z

Перекладено з: Containerizing an Angular Application using Docker

Leave a Reply

Your email address will not be published. Required fields are marked *