Docker -компоновка для запуска производства laravel с nginx на azure - PullRequest
0 голосов
/ 16 июня 2020

У меня есть приложение, которое работает, но у меня возникают проблемы с его запуском на Azure.

У меня следующий docker -compose

version: "3.6"
services:
  nginx:
    image: nginx:alpine
    volumes:
      - ./:/var/www/
      - ./setup/azure/nginx/conf.d/:/etc/nginx/template
    environment: 
      PORT: ${PORT}
    command: /bin/sh -c "envsubst '$${PORT}' < /etc/nginx/template/nginx.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
    networks: 
      - mynet 
    depends_on: 
      - app
      - worker

  app:
    image: myimage:latest
    build:
      context: .
      dockerfile: ./setup/azure/Dockerfile
    restart: unless-stopped
    tty: true
    expose:
      - 9000
    volumes: 
      - uploads:/var/www/simple/public/uploads
      - logos:/var/www/simple/public/logos
    networks:
      - mynet

  worker:
    image: my_image:latest
    command: bash -c "/usr/local/bin/php artisan queue:work --timeout=0"
    depends_on: 
      - app
    networks:
      - mynet

volumes: 
  uploads:
  logos:

networks: 
  mynet:

Я Не уверен, что тома в nginx в порядке, я думаю, что, возможно, мне следует создать новый Dockerfile для копирования файлов. Однако это значительно увеличит размер проекта.

При использовании служб приложений на azure разработка выполняется с назначением случайного порта, это wgy У меня есть инструкция envsubst в команде. Я ценю любое другое предложение запустить этот проект на Azure

1 Ответ

0 голосов
/ 23 июня 2020

Я предполагаю, что вы пытаетесь сохранить хранилище в своем приложении на томе. Ознакомьтесь с этим do c issue . Теперь я не думаю, что вам нужен

    volumes:
      - ./:/var/www/
      - ./setup/azure/nginx/conf.d/:/etc/nginx/template

, но для

    volumes: 
      - uploads:/var/www/simple/public/uploads
      - logos:/var/www/simple/public/logos

вы можете создать учетную запись хранения, подключить ее к своему плану linux приложения (это недоступно для Windows планов приложения пока нет) и смонтируйте относительный путь /var/www/simple/public/uploads к пути к файлу контейнера хранения.

...