Как соединить docker nginx с express и отреагировать на приложение windows - PullRequest
0 голосов
/ 30 января 2020

Я нашел много уроков по этим темам, но ни одного из них, объединяющих три из них. Я хочу узнать, как это сделать, потому что мне нужно начать развертывание веб-сайтов реагирования, которые я создал, и я хотел развернуть их на своем домене и размещать на своем компьютере для целей тестирования.

В каком порядке я должен изучить их, чтобы архив то? Какие учебники вы рекомендуете? Я нашел несколько учебных пособий о них, но меня перепутали с каскадом вещей, которые нужно изучать. Я получил windows power shell, выполнил некоторые уроки по некоторым узлам express и смог запустить nginx на docker, но не смог закончить sh.

Я чувствую себя хорошо с моим css, js, и отреагировали, сделали небольшую игру, заставили некоторые вещи работать, немного потренировались, но теперь я застрял. Я действительно ценю любую помощь или предложения, которые вы можете предоставить для продолжения моего обучения.

Ниже приведены видеоуроки, которые я смотрел: CSS https://www.youtube.com/watch?v=1Rs2ND1ryYc Реакция https://www.youtube.com/watch?v=DLX62G4lc44

1 Ответ

2 голосов
/ 30 января 2020

Вы можете использовать файл docker-compose.yml для определения и запуска мультиконтейнерных Docker приложений. И затем с помощью одной команды вы можете собрать и запустить все свои службы. Вы можете запускать как Linux, так и Windows программы и исполняемые файлы в Docker. Docker создает тонкие виртуальные среды для ваших приложений. Вот пример того, что вы хотите. Это структура папок:

|--client  
     |--Dockerfile
     |--components
     |--index.js
|--server
     |--Dockerfile
     |--index.js
|--nginx
     |-- Dockerfile
     |--default.conf
|--docker.compose.yml

Dockerfile для клиента реакции:

FROM node:alpine as builder
WORKDIR '/app'
COPY ./package.json . /
RUN npm install
COPY . .
RUN npm run build

Dockerfile для nginx

FROM nginx 
COPY ./default.conf /etc/nginx/conf.d/default.conf

default.conf для nginx

upstream client {
    server client:3000;
}

upstream api {
    server api:5000;
}

server {
    listen 80;

    location / {
        proxy_pass  http://client;
    }
    location /sockjs-node {
        proxy_pass http://client;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

    location /api {
        rewrite /api/(.*) /$1 break;
        proxy_pass  http://api;
    }
}

Dockerfile для узла / express сервер

FROM node:alpine
WORKDIR '/app'
COPY ./package.json ./
RUN npm install
COPY . .
CMD [ "npm", "run", "start" ]

docker-compose.yml файл. Вы можете переключить mon go с любой базой данных, которую вы хотите использовать для вашего API. Вы можете создавать и запускать все с помощью docker-compose up --build из основного каталога проекта (где находится файл docker-compose)

version: '3'
services:
  nginx:
    restart: always
    build:
      dockerfile: Dockerfile
      context: ./nginx
    ports:
      - '80:80'
  mongo:
    container_name: mongo
    image: mongo
    ports:
      - '27017:27017'
  api:
    restart: always  
    build:
      dockerfile: Dockerfile
      context: ./server
    volumes: 
      - /app/node_modules
      - ./server:/app
    links:
      - mongo
    ports:
      - '5000:5000'
    depends_on:
      - mongo
  client:
    build:
      dockerfile: Dockerfile
      context: ./client
    volumes:
      - /app/node_modules
      - ./client:/app
    links:
      - api
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...