docker - 通过 Docker compose 文件配置本地代理?
问题描述
我有一张我已经使用了很长时间的图像,现在效果很好。它允许我启动一个新项目,并通过 compose 文件,我拥有开始运行所需的一切。我一直感到沮丧的一件事是让一些代理为本地开发工作显然很复杂。
目前我得到了一个 Web 服务器,它允许我通过 localhost 访问正在运行的容器。为了我自己的理智,我希望能够拥有 myproject.test 或类似的东西。无论如何这可以通过撰写文件来完成吗?我已经尝试搜索了好几天,但我似乎无法找到一种方法来做到这一点,但它似乎不应该那么难。
我的撰写文件如下所示:
version: ‘2’
services:
webserver:
build: ./docker/webserver
image: perch
ports:
- "80:80"
- "443:443"
volumes:
- ./www:/var/www/html
links:
- db
env_file:
- web-variables.env
db:
image: mysql:5.7
command: mysqld --sql_mode=""
ports:
- "3306:3306"
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=xxx
- MYSQL_DATABASE=db_xxx
我的 Dockerfile:
FROM php:7.2-apache
RUN apt-get update -y && apt-get install -y \
mcrypt \
imagemagick \
libpng-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
curl \
libcurl4-openssl-dev \
libxpm-dev \
libvpx-dev \
&& docker-php-ext-configure gd \
--with-freetype-dir=/usr/lib/x86_64-linux-gnu/ \
--with-jpeg-dir=/usr/lib/x86_64-linux-gnu/ \
--with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \
--with-vpx-dir=/usr/lib/x86_64-linux-gnu/ \
&& docker-php-ext-install \
pdo \
pdo_mysql \
gd \
curl \
&& a2enmod \
rewrite \
ssl \
actions \
include \
cgi \
&& service apache2 restart
解决方案
AFAIK,你不能只通过配置你的来做到这一点docker-compose.yml
(至少,我知道还没有图像可以使这成为可能——但实际上这将是一件很酷的事情!)
您可以做的是在网络服务器的容器内为您的反向代理安装一个预先配置的配置文件,然后根据您的需要进行调整。你不能动态地做的是让你的浏览器通过点击进入你的反向代理http://myproject.test
。*你必须为此配置你的/etc/hosts
文件。当然,如果这对您来说足够的话,您可以在自己的机器上执行此操作。
(*) 好的,您可以这样做,但这似乎不是正确的做法,如果您有其他想法,请纠正我。
推荐阅读
- python - IndexError:简单for循环上的列表索引超出范围
- java - 滚动部署的自动化(Eureka,微服务)
- php - Mysql 数据库未使用 $_POST["value"] 和 PHP 准备的 UPDATE 语句进行更新
- javascript - 更新
从一个 到另一个不会持续更新图标 - python - 如何用二进制掩码掩码图像
- javascript - 尝试使用按钮将 HTML 加载到 div 中
- python - 在 Yahoo! 上通过“data-reactid”查找元素 金融
- javascript - React Native CLI 对本机依赖项使用自动链接,但以下模块是手动链接的 react-native-webview
- google-cloud-storage - 在 Google Cloud Storage 上,覆盖或删除对象是否会影响客户端主动读取同一对象?
- ios - 不使用情节提要时,Xcode 在捆绑 NSBundle 中找不到名为“Main”的情节提要