|
1 | 1 | "use strict"; |
2 | 2 |
|
3 | 3 | const Docker = require("dockerode"); |
4 | | -const path = require('path'); |
5 | | -const fs = require('fs'); |
| 4 | +const path = require("path"); |
| 5 | +const fs = require("fs"); |
6 | 6 |
|
7 | 7 | const docker = new Docker(); |
8 | 8 |
|
@@ -46,30 +46,31 @@ function findErrorInBuildOutput(buildOutput) { |
46 | 46 | } |
47 | 47 |
|
48 | 48 | function getFilesInBuildContextDirectory(directory) { |
49 | | - let files = []; |
| 49 | + let files = []; |
50 | 50 |
|
51 | | - try { |
52 | | - const dirents = fs.readdirSync(directory, { withFileTypes: true }); |
53 | | - |
54 | | - dirents.forEach(dirent => { |
55 | | - const absolutePath = path.join(directory, dirent.name); |
56 | | - if (dirent.isDirectory()) { |
57 | | - const subFiles = getFilesInBuildContextDirectory(absolutePath); |
58 | | - |
59 | | - // Prepend the current directory name to each subfile path |
60 | | - const relativeSubFiles = subFiles.map(subFile => path.join(dirent.name, subFile)); |
61 | | - files = files.concat(relativeSubFiles); |
62 | | - } else if (dirent.isFile() && dirent.name !== '.dockerignore') { |
63 | | - // Don't include .dockerignore file in result |
64 | | - files.push(dirent.name); |
65 | | - } |
66 | | - } |
67 | | - ); |
68 | | - } catch (err) { |
69 | | - console.error(`Error reading directory ${directory}:`, err); |
70 | | - } |
| 51 | + try { |
| 52 | + const dirents = fs.readdirSync(directory, { withFileTypes: true }); |
| 53 | + |
| 54 | + dirents.forEach((dirent) => { |
| 55 | + const absolutePath = path.join(directory, dirent.name); |
| 56 | + if (dirent.isDirectory()) { |
| 57 | + const subFiles = getFilesInBuildContextDirectory(absolutePath); |
71 | 58 |
|
72 | | - return files; |
| 59 | + // Prepend the current directory name to each subfile path |
| 60 | + const relativeSubFiles = subFiles.map((subFile) => |
| 61 | + path.join(dirent.name, subFile) |
| 62 | + ); |
| 63 | + files = files.concat(relativeSubFiles); |
| 64 | + } else if (dirent.isFile() && dirent.name !== ".dockerignore") { |
| 65 | + // Don't include .dockerignore file in result |
| 66 | + files.push(dirent.name); |
| 67 | + } |
| 68 | + }); |
| 69 | + } catch (err) { |
| 70 | + console.error(`Error reading directory ${directory}:`, err); |
| 71 | + } |
| 72 | + |
| 73 | + return files; |
73 | 74 | } |
74 | 75 |
|
75 | 76 | module.exports = { |
@@ -109,10 +110,13 @@ module.exports = { |
109 | 110 | return new Promise(async (resolve, reject) => { |
110 | 111 | let files = getFilesInBuildContextDirectory(container.directory); |
111 | 112 |
|
112 | | - const buildStream = await docker.buildImage({context: container.directory, src: files}, { |
113 | | - t: imageName, |
114 | | - registryconfig: registryAuth, |
115 | | - }); |
| 113 | + const buildStream = await docker.buildImage( |
| 114 | + { context: container.directory, src: files }, |
| 115 | + { |
| 116 | + t: imageName, |
| 117 | + registryconfig: registryAuth, |
| 118 | + } |
| 119 | + ); |
116 | 120 | const buildStreamEvents = await extractStreamContents( |
117 | 121 | buildStream, |
118 | 122 | this.provider.options.verbose |
|
0 commit comments