├── .envrc ├── .gitignore ├── CONTRIBUTING.md ├── deps.edn ├── Dockerfile ├── flake.nix ├── .dockerignore ├── Dockerfile.nix ├── .github └── workflows │ ├── release.yml │ └── docker.yml ├── main.go ├── repository └── docker │ └── docker-tools │ └── 0.1.0 │ └── manifest.edn ├── go.mod ├── babashka └── ops.go ├── Dockerfile.init ├── dev └── user.clj ├── README.md ├── docker └── ops.go ├── gomod2nix.toml ├── flake.lock ├── LICENSE └── go.sum /.envrc: -------------------------------------------------------------------------------- 1 | use flake 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | babashka-pod-docker 2 | .calva/ 3 | /parser 4 | /.clj-kondo/ 5 | /.cpcache/ 6 | /.lsp/ 7 | /.nrepl-port 8 | /vendor/ 9 | /result 10 | /.direnv/ 11 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Make an [issue](https://github.com/atomisthq/pod-babashka-docker/issues) and/or [PR](https://github.com/atomisthq/pod-babashka-docker/pulls). 4 | -------------------------------------------------------------------------------- /deps.edn: -------------------------------------------------------------------------------- 1 | {:sources ["dev"] 2 | :deps {babashka/babashka.pods {:mvn/version "0.1.0"} 3 | babashka/process {:mvn/version "0.4.13"} 4 | com.cognitect/transit-clj {:mvn/version "1.0.324"}} 5 | :aliases {:main {:extra-paths ["main"] 6 | :exec-fn user/transact-hashes}}} 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:1.19-alpine AS build 2 | 3 | WORKDIR /app 4 | 5 | COPY go.mod ./ 6 | COPY go.sum ./ 7 | 8 | RUN go mod download 9 | 10 | COPY main.go ./ 11 | COPY docker/ ./docker/ 12 | COPY babashka/ ./babashka/ 13 | 14 | RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o babashka-pod-docker 15 | 16 | FROM alpine:3.17 17 | ARG version 18 | COPY repository/ /root/.babashka/pods/repository 19 | COPY --from=build /app/babashka-pod-docker /root/.babashka/pods/repository/docker/docker-tools/0.1.0 20 | RUN chmod 755 /root/.babashka/pods/repository/docker/docker-tools/0.1.0/babashka-pod-docker 21 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | description = "Docker Pod v0.2.0-1"; 3 | 4 | inputs = { 5 | platform-engineering = { 6 | url = "github:slimslenderslacks/nix-modules"; 7 | inputs.nixpkgs.follows = "nixpkgs"; 8 | }; 9 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; 10 | }; 11 | 12 | outputs = { nixpkgs, ... }@inputs: 13 | inputs.platform-engineering.golang-project 14 | { 15 | inherit nixpkgs; 16 | dir = ./.; 17 | name = "babashka-pod-docker"; 18 | version = "0.2.0"; 19 | package-overlay = pkgs: packages: 20 | packages // { 21 | default = pkgs.writeShellScriptBin "entrypoint" '' 22 | ${packages.app}/bin/babashka-pod-docker 23 | ''; 24 | }; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | # Include any files or directories that you don't want to be copied to your 2 | # container here (e.g., local build artifacts, temporary files, etc.). 3 | # 4 | # For more help, visit the .dockerignore file reference guide at 5 | # https://docs.docker.com/engine/reference/builder/#dockerignore-file 6 | 7 | **/.DS_Store 8 | **/.classpath 9 | **/.dockerignore 10 | **/.env 11 | **/.git 12 | **/.gitignore 13 | **/.project 14 | **/.settings 15 | **/.toolstarget 16 | **/.vs 17 | **/.vscode 18 | **/.direnv 19 | **/.cpcache 20 | **/.clj-kondo 21 | **/.github 22 | **/*.*proj.user 23 | **/*.dbmdl 24 | **/*.jfm 25 | **/bin 26 | **/charts 27 | **/docker-compose* 28 | **/compose* 29 | **/Dockerfile* 30 | **/node_modules 31 | **/npm-debug.log 32 | **/obj 33 | **/secrets.dev.yaml 34 | **/values.dev.yaml 35 | LICENSE 36 | README.md 37 | -------------------------------------------------------------------------------- /Dockerfile.nix: -------------------------------------------------------------------------------- 1 | # syntax = docker/dockerfile:1.4 2 | FROM nixos/nix:latest AS builder 3 | 4 | WORKDIR /tmp/build 5 | RUN mkdir /tmp/nix-store-closure 6 | 7 | RUN \ 8 | --mount=type=cache,target=/nix,from=nixos/nix:latest,source=/nix \ 9 | --mount=type=cache,target=/root/.cache \ 10 | --mount=type=bind,target=/tmp/build \ 11 | <