Skip to content
This repository has been archived by the owner on Jan 1, 2020. It is now read-only.

Commit

Permalink
fix: Make docker work
Browse files Browse the repository at this point in the history
Changes:
- use `require.resolve` for loaders
- various fixes to make docker run
  • Loading branch information
IniZio committed Dec 20, 2017
1 parent ed8fb92 commit db5b244
Show file tree
Hide file tree
Showing 18 changed files with 3,162 additions and 3,319 deletions.
41 changes: 29 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
"cross-spawn": "^5.1.0",
"dockerode": "^2.5.3",
"extends-classes": "^1.0.5",
"fs-extra": "^5.0.0",
"git-url-parse": "^7.0.1",
"lodash": "^4.17.4",
"minimist": "^1.2.0",
Expand Down
49 changes: 35 additions & 14 deletions presets/docker/clipped.config.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,44 @@
const fs = require('fs')
const path = require('path')
const tar = require('tar-fs')
const {Docker} = require('node-docker-api')

const promisifyStream = (stream) => new Promise((resolve, reject) => {
stream.on('data', (d) => console.log(d.toString()))
stream.on('end', resolve)
stream.on('error', (e) => { console.log(e.toString()); reject(e) })
})

module.exports = async clipped => {
if (!clipped.config.name) throw new Error('Need to provide image name')

clipped.hook('pre-build:docker')
.add('build', async clipped => clipped.execHook('build'))
.add('build-native', async clipped => clipped.execHook('build'))
clipped.hook('build:docker')
.add('default', async clipped => {
await clipped.copy([
{src: clipped.config.dockerTemplate, dest: clipped.config.dist}
])
.prepend('build-docker', async clipped => {
try {
await clipped.copy([
{src: clipped.config.dockerTemplate, dest: clipped.config.dist}
])

let docker = new Docker({ socketPath: '/var/run/docker.sock' })

await clipped.docker.build(
{
context: clipped.config.context,
src: fs.readdirSync(clipped.config.dist)
},
{
t: clipped.config.name
}
)
// const stream = await tar.pack(clipped.config.dist)
const files = fs.readdirSync(clipped.config.dist)
console.log(`name is ${clipped.config.name}, ${files}`)
await clipped.docker.build(
{
context: clipped.config.dist,
src: files
},
{
t: clipped.config.name,
// dockerfile: path.join(clipped.config.dist, 'Dockerfile')
}
).then(stream => promisifyStream(stream))
} catch (e) {
console.error(e)
}
})
// console.log(Object.keys(clipped.hooks).map(hook => clipped.hooks[hook].tasks.map(task => task.callback.toString())))
}
228 changes: 228 additions & 0 deletions presets/docker/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 6 additions & 2 deletions presets/docker/package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
{
"name": "clipped-preset-docker",
"version": "0.1.0",
"version": "0.1.1",
"description": "",
"main": "clipped.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
"license": "ISC",
"dependencies": {
"node-docker-api": "^1.1.18",
"tar-fs": "^1.16.0"
}
}
2 changes: 1 addition & 1 deletion presets/webpack-backend/clipped.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ module.exports = async (clipped, opt = {babel: {options: {}}}) => {
.rule('babel')
.test(/\.js$/)
.use('babel')
.loader('babel-loader')
.loader(require.resolve('babel-loader'))
.options(Object.assign({
presets: [
[require.resolve('babel-preset-backpack')]
Expand Down
Loading

0 comments on commit db5b244

Please sign in to comment.