Docker 和 BrowserSync

Docker and BrowserSync

我正尝试在我的 docker 容器中 运行 browsersync,但我只在导航到 localhost:3000 时获得目录列表。我正在尝试 运行 一个 WordPress 实例,并且我正在使用 Gulp 作为任务 运行ner。 localhost:3001 成功启动 browsersync ui 并查看 localhost(无端口)打开主页。以下是我认为的相关代码片段。

Gulp文件 BrowserSync 设置:

const gBrowsersync = function(done) {
  browsersync.init({
    open: false,
  });
  done();
};

Docker-撰写:

version: "3.7"

services:

  db:
    image: mysql:5.7
    container_name: db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - back

  wordpress:
    build: .
    image: ws-wordpress
    container_name: wp
    depends_on:
      - db
    restart: always
    ports:
      - "80:80"
      - "3000:3000"
      - "3001:3001"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: password
    volumes:
      - ./wp-content/:/var/www/html/wp-content/
      - ./sw.js:/var/www/html/sw.js
      - ./manifest.json:/var/www/html/manifest.json
      - ./package.json:/var/www/html/package.json
      - ./gulpfile.babel.js:/var/www/html/gulpfile.babel.js
      - ./webpack.config.js:/var/www/html/webpack.config.js
    networks:
      - back

networks:
  back:
volumes:
  db_data:

Docker文件:

FROM wordpress
RUN apt-get update -y
RUN apt-get install gnupg -y
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install nodejs -y
RUN apt-get install nano -y

添加了代理选项,现在可以使用@localhost:3000

const gBrowsersync = function(done) {
  browsersync.init({
    open: false,
    proxy: "localhost"
  });
  done();
};

不确定为什么我必须添加 localhost 作为代理。如果有人能提供一个简短的解释,我将不胜感激。

我没有更改浏览器同步,但我需要像这样公开端口: docker-compose.foundation.yaml

version: '3.6'
#ddev-ext-foundation
services:

  web:    
    ports:
      - "127.0.0.1:$DDEV_HOST_WEBSERVER_PORT:8000"
    environment:
      -  HTTP_EXPOSE=${DDEV_ROUTER_HTTP_PORT}:80,${DDEV_MAILHOG_PORT}:8025,8000