小编Ibt*_*tif的帖子

如何忽略要在 docker 构建上下文中发送的文件夹

由于我的项目结构,我面临着大型 docker 构建上下文的问题。在我的根目录中,我有用于公共代码和微服务文件夹的 lib 文件夹。现在我想为 miscroservice1 构建只包含 lib 文件夹并忽略其他微服务。

我在根文件夹中运行 docker build 命令,因为在 microservice 文件夹中运行命令给出错误 Forbidden path outside of build context

rootFolder
-- lib
-- microservice1/Dockerfile
-- microservice2/Dockerfile
-- microservice3/Dockerfile
Run Code Online (Sandbox Code Playgroud)

我有两个解决方案,但暂时没有尝试

  1. 在我的微服务文件夹中为 lib 添加符号链接
  2. 为每个 docker build 编写脚本以在特定的微服务文件夹中添加 lib 文件夹,然后运行 ​​docker build。

我正在尝试上述两种解决方案。任何人都可以建议任何最佳做法吗?

docker docker-build

14
推荐指数
2
解决办法
2万
查看次数

Gulp Inject 没有注入我所有的文件。只添加一个 main.scss 文件

我在重建后的 gulp 注入中面临昨天的问题,gulp-inject 没有注入我的所有文件。只添加一个 main.scss 文件

在 gulp 样式任务中没有改变任何东西。相同的代码在我的舞台环境中工作,因为我没有重建 gulp。

这是代码片段。

  var injectFiles = gulp.src([
    path.join(conf.paths.src, '/sass/**/_*.scss'),
    '!' + path.join(conf.paths.src, '/sass/theme/conf/**/*.scss'),
    '!' + path.join(conf.paths.src, '/sass/404.scss'),
    '!' + path.join(conf.paths.src, '/sass/auth.scss')
  ], {read: false});

  var injectOptions = {
    transform: function (filePath) {
      filePath = filePath.replace(conf.paths.src + '/sass/', '');
      return '@import "' + filePath + '";';
    },
    starttag: '// injector',
    endtag: '// endinjector',
    addRootSlash: false
  };

  return gulp.src([
    path.join(conf.paths.src, '/sass/main.scss')
  ])
    .pipe($.inject(injectFiles, injectOptions))
    .pipe(wiredep(_.extend({}, conf.wiredep)))
    .pipe($.sourcemaps.init())
    .pipe($.sass(sassOptions)).on('error', conf.errorHandler('Sass'))
    .pipe($.autoprefixer()).on('error', conf.errorHandler('Autoprefixer'))
    .pipe($.sourcemaps.write())
    .pipe(gulp.dest(path.join(conf.paths.tmp, '/serve/app/'))); …
Run Code Online (Sandbox Code Playgroud)

gulp gulp-inject

2
推荐指数
1
解决办法
713
查看次数

标签 统计

docker ×1

docker-build ×1

gulp ×1

gulp-inject ×1