Я пытаюсь запустить Docker Compose с помощью Docker на облачной платформе Google - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в докере и GCP.Я следовал инструкциям здесь

Мой файл docker-compose.yml выглядит следующим образом:

version: '3'
services: 
  backend:
    image: com.xyz.backend:v1
    build: ./server/
    ports: 
      - "5000:5000"
    volumes:
      - ./server:/usr/src/app
      - /usr/src/app/node_modules
  frontend:
    image: com.xyz.frontend:v1
    build: ./client/
    ports:
      - "3000:3000"
    volumes:
      - ./client:/usr/src/app
      - /usr/src/app/node_modules
    links:
      - backend

Файл Docker => client / Dockerfile:

FROM node:8.15.0-alpine

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

ENV NODE_PATH=/node_modules

ENV PATH=$PATH:/node_modules/.bin

COPY package.json /usr/src/app

RUN npm i -g npm-check-updates

RUN ncu -u

RUN npm install

COPY . /usr/src/app

ENV PORT 3000

EXPOSE 3000

RUN pwd

CMD ["npm", "start"]

Docker file => server / Dockerfile

FROM node:8.15.0-alpine

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

ENV NODE_PATH=/node_modules

ENV PATH=$PATH:/node_modules/.bin

RUN npm install -g nodemon

COPY package.json /usr/src/app

RUN npm i -g npm-check-updates

RUN ncu -u

RUN npm install

COPY . /usr/src/app

ENV PORT 5000

EXPOSE 5000

RUN pwd

CMD ["npm", "start"]

cloudbuild.yaml

steps:
- name: ‘docker/compose:1.23.2’
  args: [‘up’, ‘-d’]
- name: 'gcr.io/cloud-builders/docker'
  args: ['tag', 'workspace_app:latest', 'gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']
images: ['gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']

Структура проекта:

Project
↳ client
   ↳ Dockerfile
  server
   ↳ Dockerfile

  README.md
  Dockerfile
  cloudbuild.yaml
  docker-compose.yml

Когда я пытаюсь запуститьэто в gcp не выдается никаких ошибок, но я не могу получить доступ с помощью публичного ip.

Когда я запускаю его локально, он работает нормально.

Я запускаю докер с помощью следующей команды

docker run     -v /var/run/docker.sock:/var/run/docker.sock     -v "$PWD:$PWD"     -w="$PWD"   docker/compose:1.23.2 up

Я попытался установить порт также как:

docker run     -v /var/run/docker.sock:/var/run/docker.sock     -v "$PWD:$PWD"     -w="$PWD"  -p 8080:3000   docker/compose:1.23.2 up

Не смог найти причину проблемы.Пожалуйста, совет .. Спасибо заранее.

1 Ответ

0 голосов
/ 23 марта 2019

Мне кажется, это проблема с брандмауэром.

Пример, которому вы следовали , прослушивает соединения через порт 80 , в то время как ваше приложение использует порты 3000 и 5000. GCP поставляется с набором по умолчаниюправила брандмауэра, где доступны порты для некоторых стандартных протоколов, таких как HTTP, но вам нужно будет создать новый брандмауэр, чтобы разрешить доступ к соответствующим портам вашего приложения.

Проверьте этот ответ осоздание правил брандмауэра для определенных портов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...