Проблема
В настоящее время я создал Dockerfile
и docker-compose.yml
для запуска rest-api и базы данных, используя docker-compose up
.
Теперь я хочу добавить еще один контейнер, а именно веб-приложение (сборка с React). Я немного запутался, как это сделать, так как я только начал изучать Docker 2 дня go.
Структура папок
Это моя текущая структура папок
- Папка: rest-api (NodeJS)
- Dockerfile
- dockercompose.yml
Вопрос
В конце я хочу иметь возможность запустить docker-compose up
, чтобы запустить rest-api
и web-app
.
Нужно ли создавать отдельный Dockerfile
в каждой папке и создание «глобального» * 1034 *, чтобы связать все вместе?
Новая структура папок:
- dockercompose.yml
- Папка: rest-api (NodeJS)
- Папка: web-app (React)
Моя текущая настройка для запуска rest-api и базы данных
Dockerfile
FROM node:13.10
# The destination of the app in the container
WORKDIR /usr/src/app
# Moves the package.json, package-loc.json and tsconfig.json to the specified workdir
COPY package*.json ./
COPY tsconfig.json ./
# Create user and postgres
ENV POSTGRES_USER root
ENV POSTGRES_PASSWORD 12345
ENV POSTGRES_DB postgres
ENV POSTGRES_URI 'postgres://postgres:12345@postgres:5432/postgres'
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
docker -compose.yml
version: '3'
services:
node:
container_name: rest-api
restart: always
build: .
environment:
PORT: 3000
ports:
- '80:3000'
links:
- postgres
postgres:
container_name: postgres-database
image: postgres
environment:
POSTGRES_URI: 'postgres://postgres:12345@postgres-database:5432/postgres'
POSTGRES_PASSWORD: 12345
ports:
- '5432:5432'