通过Docker compose文件配置本地代理?

通过Docker compose文件配置本地代理?,docker,Docker,我有一个图像,我已经用了很长时间,现在它的工作完美。它允许我启动一个新的项目,并通过撰写文件,我拥有一切我需要的东西,以启动运行。我一直感到沮丧的一件事是,让一些代理人为地方发展工作显然很复杂 目前,我得到了一个web服务器,它允许我通过localhost访问正在运行的容器。为了我自己的理智,我希望能够有myproject.test或类似的东西。是否仍然可以通过撰写文件完成此操作?我已经试着搜索了好几天,但我似乎找不到这样做的方法,但这似乎不太难 我的撰写文件如下所示: version: ‘2’

我有一个图像,我已经用了很长时间,现在它的工作完美。它允许我启动一个新的项目,并通过撰写文件,我拥有一切我需要的东西,以启动运行。我一直感到沮丧的一件事是,让一些代理人为地方发展工作显然很复杂

目前,我得到了一个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
好吧,你不能只通过配置你的
docker compose.yml
(至少,据我所知,还没有一个图像可以让这成为可能,但实际上这是一件很酷的事情!)

您可以做的是在Web服务器的容器中为反向代理安装一个预配置的配置文件,然后根据您的需要进行调整。您无法动态执行的操作是通过点击
http://myproject.test
*您必须为此配置
/etc/hosts
文件。当然,如果这对您来说足够的话,您可以在自己的机器上完成

(*)好的,你可以这样做,但这似乎不是一件正确的事情,如果你不这么认为,请纠正我。

好吧,你不能只通过配置你的
docker compose.yml来做到这一点。
(至少,据我所知,目前还没有图像可以做到这一点,但实际上这将是一件很酷的事情!)

您可以做的是在Web服务器的容器中为反向代理安装一个预配置的配置文件,然后根据您的需要进行调整。您无法动态执行的操作是通过点击
http://myproject.test
*您必须为此配置
/etc/hosts
文件。当然,如果这对您来说足够的话,您可以在自己的机器上完成


(*)好的,你可以这样做,但这似乎不是一件正确的事情,如果你不这么认为,请纠正我。

我不介意编辑我的主机文件,但我所做的每一次搜索都会导致一些疯狂复杂的反向代理设置。这似乎是一个很大的工作,但一些我认为多克会迎合!我会尝试更多的教程,如果它不起作用,我会满足于我所拥有的。如果你只是让你的
/etc/hosts
文件看起来像这样:
127.0.0.1 localhost myproject.test
(就这一行,当然在这个文件中还有更多),那么你可以在这个地址找到你的localhost。您可以通过
docker run--rm-p80:80httpd:alpine
然后从主机上
curl myproject.test
来确认这一点,这应该会返回
正常工作。基本上,这就是你想要实现的吗?我不介意编辑我的主机文件,但我做的每一次搜索都会导致一些疯狂复杂的反向代理设置。这似乎是一个很大的工作,但一些我认为多克会迎合!我会尝试更多的教程,如果它不起作用,我会满足于我所拥有的。如果你只是让你的
/etc/hosts
文件看起来像这样:
127.0.0.1 localhost myproject.test
(就这一行,当然在这个文件中还有更多),那么你可以在这个地址找到你的localhost。您可以通过
docker run--rm-p80:80httpd:alpine
然后从主机上
curl myproject.test
来确认这一点,这应该会返回
正常工作。基本上,这就是你想要实现的吗?