1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-15 17:51:06 +00:00
dragonflydb-dragonfly/tools/packaging
s13k ff2359af30
fix(tools): Prevent dragonfly.logrotate to stop logrotate service (#4176)
Update dragonfly.logrotate

If multiple logs are being rotated and one of them fails (due to exit 1), the other logs that follow won't be rotated either, unless logrotate is run again.

If you want to prevent the rotation of a specific log file and not affect the rest of the logs, you'll want to handle the condition properly to ensure that logrotate doesn't abort due to the failure of the prerotate script.

To prevent the rotation of a specific log file without causing issues for other logs, you can use exit 0 to prevent rotation cleanly or design your prerotate script to handle conditions carefully.

Signed-off-by: s13k <s13k@pm.me>
2024-11-24 17:27:05 +00:00
..
debian fix(tools): Prevent dragonfly.logrotate to stop logrotate service (#4176) 2024-11-24 17:27:05 +00:00
rpm Add build_rpm script and rpm spec (#1831) 2023-09-12 10:42:06 +03:00
Dockerfile.alpine-dev fix: named volume permissions in docker (#3518) 2024-08-22 11:33:29 +03:00
Dockerfile.ubuntu-dev fix: named volume permissions in docker (#3518) 2024-08-22 11:33:29 +03:00
Dockerfile.ubuntu-prod fix: named volume permissions in docker (#3518) 2024-08-22 11:33:29 +03:00
generate_changelog.sh feat(actions): add support for debian packaging (#696) 2023-01-18 09:29:28 +02:00
generate_debian_package.sh fix: release pipeline (#2439) 2024-01-18 16:52:19 +02:00
README.md feat(build): debian package building (#689) 2023-01-16 17:44:53 +02:00

Installation Packages

Overview

This directory includes a set of files and scripts to build installation package for various Linux distributions.

Debian

The file to build the Debian package all located under "debian" directory. The resulting package will install the binary of Dragonfly as well as generate a new service entry for dragonfly, that can be controlled with "systemctl" command, to start, stop and check status of.

Building

To build the package, you have a script called "generate_debian_package.sh". This script accepts the following parameters:

  • Optional binary path - the location from which to take the binary for the installation. The default for this is "repo path/build-opt". The location to which the resulting package is writing is at the location from which the script is executed. This script is depends on the following packages:
  • git
  • moreutils
  • debhelper
  • dpkg-dev

To build:

/path/to/dragonfly/tools/packaging/generate_debian_package.sh [/path/to/dragonfly-binary-file]

This can only be run on Debian based hosts. You can use the flowing docker file to generate this package:

FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update -y && apt-get install -y gcc dpkg-dev gpg vim wget git moreutils debhelper

Build the above docker and then run it with your dragonfly source code path mount as volume for the build:

docker build -t ubuntu-package .
docker run --rm -ti -v /path/to/dragonfly-repo:/mydocker-path ubuntu-package bash

Again note that you need to be at "main" branch to successfully build this package. Note: If at the end of the installation you see a message "/usr/bin/deb-systemd-helper: error: systemctl preset failed on dragonfly.service: No such file or directory", you can ignore it, this seem to be related to the following issue.