docker-compose端口未按预期暴露

时间:2019-01-03 14:09:47

标签: docker docker-compose

我正在使用Docker local environment开发一个Magento网站。

我已经安装了Sass blank themefrontools。现在,我正在尝试使browsersync工作。

我正在cli图片中进行此操作,因为在尝试浏览器同步之前,这是我最初设置gulp的地方。

这是各个配置

docker-compose.yml

cli:
  image: 'magento/magento-cloud-docker-php:7.1-cli-scss2'
  ports:
    - '3001:3001'
  depends_on:
    - db
    - redis
    - elasticsearch
    - rabbitmq
  volumes:
    - '~/.cache/composer:/root/.composer/cache'
    - '.:/var/www/magento:rw'
  volumes_from:
    - appdata
  env_file:
    - ./docker/global.env
    - ./docker/config.env

gulpfile.js

gulp.task('serve', ['sass'], function() {

    browserSync.init({
        proxy: 'hz.moxune.net',
        port: 3001,
        open: false,
        notify: false,
    });

    gulp.watch([
        '../../../app/design/frontend/Magento/my-theme/styles/**/*.*.scss',
        ['sass']
    ]);
});

它似乎正在主机上运行,​​也就是说,如果我运行lynx http://cli-container-ip:3001,则将加载站点。但是,它不是通过网络公开的(服务器在我的LAN上,而不是我的本地计算机上)。所以尽管有

ports:
    - '3001:3001'

使用docker-compose up启动堆栈后,运行docker ps显示列表的PORTS部分为空...

CONTAINER ID        IMAGE                                            COMMAND                  CREATED             STATUS              PORTS                                      NAMES
93b73452fb18        magento/magento-cloud-docker-php:7.1-cli-scss2   "/docker-entrypoint.…"   3 seconds ago       Up 2 seconds                                                   magento_cli_run_63

似乎我在ports规范中做的不正确吗?

1 个答案:

答案 0 :(得分:1)

您的端口未发布,因为您没有运行docker-compose updocker-compose run命令不会使用撰写文件中的所有服务规范。