如何在Docker下的Digital Ocean上设置laravel应用程序?

时间:2018-12-27 15:06:27

标签: docker laravel-5 digital-ocean

我使用Docker在Digital Ocean Server(在kubuntu 18下)上安装了laravel 5应用程序 所以现在mysite的网址看起来像 http://NNN.NN.NNN.N:8085/public/login,其中 http://NNN.NN.NNN.N-是我的服务器的IP 8085-我在docker-compose.yml文件中设置的端口:

version: '3.1'

services:

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

我想为此应用添加youtube视频,因此我必须设置客户端ID /客户端密码并获取 授权的重定向URI,我必须输入Authorized domains值,例如:

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 :(得分:1)

您可以将NGINX用作反向代理服务器(https://github.com/jwilder/nginx-proxy),并按如下所示将名为“虚拟主机”的env-var添加到容器中:

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

或在您的Docker撰写案例中

version: '3.1'

services:

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

然后将DNS配置为指向计算机ip。完成所有与虚拟主机匹配的请求后,会将其重定向到暴露端口上的容器。