From f117e4cb65220263e6bb8e7728987fddedbbef98 Mon Sep 17 00:00:00 2001 From: qvalentin Date: Fri, 7 Apr 2023 16:19:13 +0200 Subject: [PATCH] Backend docker deploy --- backend/.gitignore | 1 + backend/converted.nix | 55 +++++++++++++++++++++++++++++++++++++++ backend/default.nix | 34 ++++++++++++++++++++++++ backend/deploy.sh | 5 ++++ backend/jitsi-rooms.cabal | 25 ------------------ 5 files changed, 95 insertions(+), 25 deletions(-) create mode 100644 backend/converted.nix create mode 100644 backend/default.nix create mode 100755 backend/deploy.sh diff --git a/backend/.gitignore b/backend/.gitignore index 11f8a4f..14422bd 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -1,3 +1,4 @@ .stack-work/ *~ dist-newstyle +result diff --git a/backend/converted.nix b/backend/converted.nix new file mode 100644 index 0000000..584d831 --- /dev/null +++ b/backend/converted.nix @@ -0,0 +1,55 @@ +{ mkDerivation +, aeson +, base +, bytestring +, classy-prelude +, http-types +, lib +, lifted-base +, mtl +, text +, uuid +, wai +, warp +, websockets +}: +mkDerivation { + pname = "jitsi-rooms"; + version = "0.1.0.0"; + src = ./.; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + base + bytestring + classy-prelude + http-types + lifted-base + mtl + text + uuid + wai + warp + websockets + ]; + executableHaskellDepends = [ + aeson + base + bytestring + classy-prelude + http-types + lifted-base + mtl + text + uuid + wai + warp + websockets + ]; + homepage = "https://github.com/githubuser/jitsi-rooms#readme"; + license = lib.licenses.bsd3; + mainProgram = "jitsi-rooms-exe"; + enableSharedExecutables = false; + postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc"; +} diff --git a/backend/default.nix b/backend/default.nix new file mode 100644 index 0000000..6492594 --- /dev/null +++ b/backend/default.nix @@ -0,0 +1,34 @@ +let + config = { + packageOverrides = pkgs: rec { + haskellPackages = pkgs.haskellPackages.override { + overrides = haskellPackagesNew: haskellPackagesOld: rec { + jitsi-rooms = + haskellPackagesNew.callPackage ./converted.nix { }; + }; + }; + }; + }; + pkgs = import { inherit config; }; + + +in +pkgs.dockerTools.buildImage { + name = "jitsi-rooms"; + tag = "latest"; + copyToRoot = pkgs.buildEnv { + name = "image-root"; + paths = [ + pkgs.bash + pkgs.coreutils + ]; + pathsToLink = [ "/bin" ]; + }; + config = { + Cmd = [ "${pkgs.haskellPackages.jitsi-rooms}/bin/jitsi-rooms-exe" ]; + ExposedPorts = { + "9160/tcp" = { }; + "8081/tcp" = { }; + }; + }; +} diff --git a/backend/deploy.sh b/backend/deploy.sh new file mode 100755 index 0000000..fc69a4e --- /dev/null +++ b/backend/deploy.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +nix-build + +scp ./result ffs:/home/ffsys/jitsi-rooms-docker-image diff --git a/backend/jitsi-rooms.cabal b/backend/jitsi-rooms.cabal index 8b8d6d1..e789efa 100644 --- a/backend/jitsi-rooms.cabal +++ b/backend/jitsi-rooms.cabal @@ -91,28 +91,3 @@ executable jitsi-rooms-exe , websockets default-language: Haskell2010 -test-suite jitsi-rooms-test - type: exitcode-stdio-1.0 - main-is: Spec.hs - other-modules: - Paths_jitsi_rooms - hs-source-dirs: - test - default-extensions: - NoImplicitPrelude,OverloadedStrings,ImportQualifiedPost - ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N - build-depends: - aeson - , base >=4.7 && <5 - , bytestring - , classy-prelude - , http-types - , jitsi-rooms - , lifted-base - , mtl - , text - , uuid - , wai - , warp - , websockets - default-language: Haskell2010