Как настроить приложение laravel на Digital Ocean под докером? - PullRequest
0 голосов
/ 27 декабря 2018

Я установил приложение laravel 5 на Digital Ocean Server (под kubuntu 18), используя Docker Так что теперь URL-адрес mysite выглядит как http://NNN.NN.NNN.N:8085/public/login, где http://NNN.NN.NNN.N - это ip моего сервера 8085 - порт, который я установил в докере-compose.yml file:

version: '3.1'

services:

    web:
        build:
            ...
        ports:
            - 8085:80
        working_dir: ${APP_PTH_CONTAINER}

Я хочу включить видео YouTube для этого приложения, поэтому мне нужно установить ID клиента / секрет клиента и получать авторизованные URI перенаправления. Я должен ввести значение авторизованных доменов, например:

NNN.NN.NNN.N:8085

Я получил сообщение об ошибке: Неверный домен: не может содержать порт.

Можете ли вы дать мне подсказку, как решить эту задачу?я должен использовать новый домен для этого приложения, как https://my.freenom.com Но как работать с ним, когда у меня установлен порт?

МОДИФИЦИРОВАННЫЙ БЛОК №2: Я переделал свой проектфайлы:

docker-compose.yml:

version: '3.1'

services:

    web:
        image: jwilder/nginx-proxy
        build:
            context: ./web
            dockerfile: Dockerfile.yml

        environment:
            - APACHE_RUN_USER =#1000
            - VIRTUAL_HOST    =my.freenom.com
        volumes:
            - ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
        ports:
            - 8085:80
        working_dir: ${APP_PTH_CONTAINER}


    db:
        image: mysql:5.5.62
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_HOST}:/var/lib/mysql


    adminer:
        image: adminer
        restart: always
        ports:
            - 8086:80
        links:
            - db


    composer:
        image: composer:1.6
        volumes:
            - ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
        working_dir: ${APP_PTH_CONTAINER}
        command: composer install --ignore-platform-reqs

web / Dockerfile.yml:

FROM nginx:1.10

 RUN apt-get update -y && apt-get install -y libpng-dev  \
     nano  libmcrypt-dev 

 RUN docker-php-ext-install \
     pdo_mysql \
     mcrypt \
     && a2enmod \
     rewrite

, но с запущенной командой:

docker-compose up -d --build

Я получил ошибку:

 docker-php-ext-install: not found

Не могли бы вы посмотреть на синтаксис файлов выше?

Спасибо!

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете использовать NGINX в качестве обратного прокси-сервера (https://github.com/jwilder/nginx-proxy), и добавить env-var под названием "virtual-host" в контейнер следующим образом:

docker run -d -p 80808:8080 -e VIRTUAL_HOST=my.freenom.com --name web your_image

или на вашем докересоставьте регистр

version: '3.1'

services:

web:
    build:
        ...
    ports:
        - 8085:80
    env:
        - VIRTUAL_HOST: my.freenom.com
    working_dir: ${APP_PTH_CONTAINER}

, затем настройте DNS так, чтобы он указывал на ip компьютера. После того, как вы сделали все запросы, соответствующие виртуальному хосту, будут перенаправлены в контейнер на незащищенном порту.

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