Docker: Как мне использовать доступ к сервису, который находится в другом контейнере, из внешнего интерфейса? - PullRequest
0 голосов
/ 10 июля 2020

Я запускаю проект RESTful Django на порту 8000 и проект React на порту 3000.
Для разработки все мои URL-адреса на интерфейсе были href='localhost:8000/api/name' или href='localhost:8000/api/address'.

Теперь, когда я собираюсь в производство, я хочу, чтобы мои href были href='mysite.com/api/name' или href='mysite.com/api/address'. Я не могу понять, как это сделать.

Как мне получить доступ к моим данным RESTful который находится на другом контейнере?
Я нашел эту статью , но не думаю, что она подходит для производства.

docker-compose.yml


version: "3.2"
services:
  backend:
    build: ./backend
    volumes:
      - ./backend:/app/backend
    ports:
      - "8000:8000"
    stdin_open: true
    tty: true
    command: python3 manage.py runserver 0.0.0.0:8000
    depends_on:
      - db
      - cache
    links:
      - db
  frontend:
    build: ./frontend
    volumes:
      - ./frontend:/app
       #One-way volume to use node_modules from inside image
      - /app/node_modules
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
      - CHOKIDAR_USEPOLLING=true
    depends_on:
      - backend
    tty: true
    command: npm start
  
  db:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - "./mysql:/var/lib/mysql"
      - "./.data/conf:/etc/mysql/conf.d"
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: temp
      MYSQL_USER: root
      MYSQL_PASSWORD: root

volumes:
    mysql: {}

1 Ответ

0 голосов
/ 10 июля 2020

вы можете передать, например, API_URL ("mysite.com/api/" для prod и "localhost: 8000 / api /" для dev) в качестве переменной среды для реагирования и использовать его для создания URL-адресов

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