Как предоставить внешний порт в grunt-cli, angular для размещения его на сервере?

#javascript #angular #docker #gruntjs #devops

#javascript #angular #docker #gruntjs #devops

Вопрос:

Я использую docker для создания образа для запуска моего интерфейса.

Он отлично работает на моем ноутбуке, но на моем сервере я не могу получить к нему доступ через свой браузер.

Вы можете увидеть мой скриншот, чтобы увидеть, что говорит об этом мой браузер.

Итак, мой проект находится в интерфейсе angular (grunt-cli), серверная часть находится в flask, а база данных — в mongodb. Серверная часть работает нормально, но grunt-cli, я не могу получить к ней доступ через браузер, но я могу сделать curl http://:9000 чтобы увидеть содержимое.

Вот мой Gruntfile.js —

 module.exports = function(grunt) {

// ===========================================================================
// CONFIGURE GRUNT ===========================================================
// ===========================================================================
grunt.initConfig({

  // get the configuration info from package.json ----------------------------
  // this way we can use things like name and version (pkg.name)
  pkg: grunt.file.readJSON('package.json'),

  // configure jshint to validate js files -----------------------------------
  jshint: {
    options: {
      reporter: require('jshint-stylish')
    },
    all: ['Grunfile.js', 'src/components/**/*.js']
  },

  // configure uglify to minify js files -------------------------------------
  uglify: {
    options: {
      banner: '/*n <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> n*/n'
    },
    build: {
      files: {
        'dist/js/components.min.js': 'src/components/**/*.js'
      }
    }
  },

  // compile less stylesheets to css -----------------------------------------
  less: {
    build: {
      files: {
        'dist/css/pretty.css': 'src/css/pretty.less'
      }
    }
  },

  // configure cssmin to minify css files ------------------------------------
  cssmin: {
    options: {
      banner: '/*n <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> n*/n'
    },
    build: {
      files: {
        'dist/css/style.min.css': 'src/css/style.css'
      }
    }
  },

  // configure watch to auto update ------------------------------------------
  watch: {
    stylesheets: {
      files: ['src/**/*.css', 'src/**/*.less'],
      tasks: ['less', 'cssmin']
    },
    scripts: {
      files: 'src/**/*.js',
      tasks: ['jshint', 'uglify']
    }
  },
express:{
  all:{
    options:{
      port:9000,
      hostname:'0.0.0.0',
      bases:['./src'],
      livereload: true
    }
  }
}

});

// ===========================================================================
// LOAD GRUNT PLUGINS ========================================================
// ===========================================================================
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-express');

// ===========================================================================
// CREATE TASKS ==============================================================
// ===========================================================================

grunt.registerTask('serve-waalos', ['jshint','cssmin','uglify','express','watch']);
grunt.registerTask('default', ['test', 'build']);

 };