docker images from nix

This commit is contained in:
Robin Appelman 2023-05-28 22:46:17 +02:00
commit 00eda34573
3 changed files with 29 additions and 33 deletions

View file

@ -1,27 +0,0 @@
name: docker-build
on:
push:
branches:
- 'main'
- 'master'
jobs:
docker:
runs-on: ubuntu-20.04
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: spiretf/dispenser:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

View file

@ -40,3 +40,20 @@ jobs:
with:
name: palantir-${{ matrix.target }}
path: result/bin/*
docker:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: icewind1991/attic-action@v1
with:
name: ci
instance: https://cache.icewind.me
authToken: '${{ secrets.ATTIC_TOKEN }}'
- run: nix build .#dockerImage
- name: Push image
if: github.ref == 'refs/heads/main'
run: |
skopeo copy --dest-creds="${{ secrets.DOCKERHUB_USERNAME }}:${{ secrets.DOCKERHUB_TOKEN }}" "docker-archive:$(nix build .#dockerImage --print-out-paths)" "docker://icewind1991/dispenser"

View file

@ -33,19 +33,25 @@
packages = (nixpkgs.lib.attrsets.genAttrs targets (target: (naerskForTarget target).buildPackage {
pname = "dispenser";
root = ./.;
})) // {
})) // rec {
dispenser = (naerskForTarget hostTarget).buildPackage {
pname = "dispenser";
root = ./.;
};
dockerImage = pkgs.dockerTools.buildImage {
name = "spiretf/dispenser";
tag = "latest";
copyToRoot = [dispenser];
config = {
Cmd = [ "${dispenser}/bin/dispenser" "/config.toml"];
};
};
default = dispenser;
};
defaultPackage = packages.dispenser;
# `nix develop`
devShell = pkgs.mkShell {
nativeBuildInputs = with pkgs; [pkgs.rust-bin.stable.latest.default bacon];
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon skopeo];
};
devShells.default = devShell;
})
// {
nixosModule = {