我使用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
能否请您看看上面的文件语法?
谢谢!
答案 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。完成所有与虚拟主机匹配的请求后,会将其重定向到暴露端口上的容器。