Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ itkdev-docker-compose-server
node_modules
dist
.pkg-cache
.task
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

* [PR-12](https://github.com/itk-devops/devops_itkdev-docker-server/pull/12)
Clean up Taskfile and dev tooling for `docker compose`.

## [0.0.14] - 2025-03-26

* [PR-10](https://github.com/itk-devops/devops_itkdev-docker-serverpull/1)
Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
# Docker compose server
Simple wrapper around docker compose

Simple wrapper around `docker compose`.

> [!WARNING]
> ## Needs refactor
> We depend on the archived and unmaintained [pkg](https://www.npmjs.com/package/pkg). Pkg recommends Node.js 21’s
> support for [single executable applications](https://nodejs.org/api/single-executable-applications.html) as an
> possible alternative.

## Development

``` shell
task dev:install
task dev:build
```

Run `task dev:build --force` to force a rebuild of the `itkdev-docker-compose-server` binary.
23 changes: 11 additions & 12 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,31 @@ version: '3'

dotenv: [".task.env"]

vars:
# Docker file selection
DOCKER_COMPOSE_FILES_OSX: '{{if eq OS "darwin"}}-f docker-compose.mac-nfs.yml{{end}}'
DOCKER_COMPOSE_FILES_DEFAULT: '-f docker-compose.yml {{ .DOCKER_COMPOSE_FILES_OSX }}'
DOCKER_COMPOSE_FILES: '{{.DOCKER_COMPOSE_FILES | default .DOCKER_COMPOSE_FILES_DEFAULT }}'

tasks:
dev:install:
summary: Install node packages
desc: Install node packages
cmds:
- task dev:cli -- npm install

dev:compile:
task dev:cli -- node_modules/.bin/tsc

dev:build:
summary: Build MacOS-x64 test build
desc: Build itkdev-docker-compose-server binary for local testing
cmds:
- task dev:cli -- npm run buildTest
- task dev:cli -- npm run build:macos
sources:
- '*.json'
- 'src/**/*.ts'
generates:
- itkdev-docker-compose-server

dev:cli:
summary: Performs command inside container. Expects parameter(s).
desc: Performs command inside container. Expects parameter(s).
cmds:
- docker compose {{ .DOCKER_COMPOSE_FILES }} run --rm node {{.CLI_ARGS}}
- docker compose run --rm node {{.CLI_ARGS}}

build:
summary: Build linux-x64
desc: Build linux-x64 for production
cmds:
- task dev:cli -- npm run build
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
},
"scripts": {
"build": "node_modules/.bin/tsc && node_modules/.bin/pkg --targets node18-linux-x64 --output assets/itkdev-docker-compose-server .",
"buildTest": "node_modules/.bin/tsc && node_modules/.bin/pkg --targets node18-macos-x64 --output itkdev-docker-compose-server ."
"build:macos": "node_modules/.bin/tsc && node_modules/.bin/pkg --targets node18-macos-x64 --output itkdev-docker-compose-server ."
},
"devDependencies": {
"@types/node": "^17.0.33",
Expand Down
Loading