Unify packaging: use Docker + fpm for DEB and RPM builds
- Add Dockerfile.package with multi-stage build (builder, package-builder, output) - Update Makefile to use new Dockerfile.package for package-deb and package-rpm targets - Replace dpkg-deb and rpmbuild with fpm for consistent packaging - Both DEB and RPM packages now built from single Dockerfile Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
35
Makefile
35
Makefile
@ -94,33 +94,24 @@ fmt:
|
||||
package: package-deb package-rpm
|
||||
|
||||
## package-deb: Build DEB package (requires Docker)
|
||||
package-deb: build-linux
|
||||
mkdir -p build/deb
|
||||
docker build --no-cache -t ja4sentinel-packager-deb \
|
||||
package-deb:
|
||||
mkdir -p build/deb build/rpm
|
||||
docker build --target output -t ja4sentinel-packager:latest \
|
||||
--build-arg VERSION=$(PKG_VERSION) \
|
||||
--build-arg ARCH=amd64 \
|
||||
-f packaging/Dockerfile.deb .
|
||||
@echo "Extracting DEB packages from Docker image..."
|
||||
@for f in $$(docker run --rm ja4sentinel-packager-deb sh -c 'ls /packages/*.deb 2>/dev/null'); do \
|
||||
docker run --rm ja4sentinel-packager-deb sh -c "cat $$f" > build/deb/$$(basename $$f); \
|
||||
done
|
||||
@for f in $$(docker run --rm ja4sentinel-packager-deb sh -c 'ls /packages/*.sha256 2>/dev/null'); do \
|
||||
docker run --rm ja4sentinel-packager-deb sh -c "cat $$f" > build/deb/$$(basename $$f); \
|
||||
done || true
|
||||
-f Dockerfile.package .
|
||||
@echo "Extracting packages from Docker image..."
|
||||
@docker run --rm ja4sentinel-packager:latest sh -c 'cp /packages/deb/*.deb /tmp/' && \
|
||||
docker cp $$(docker create ja4sentinel-packager:latest):/packages/deb/. build/deb/ && \
|
||||
docker cp $$(docker create ja4sentinel-packager:latest):/packages/rpm/. build/rpm/ || \
|
||||
docker run --rm -v $(PWD)/build:/output ja4sentinel-packager:latest sh -c 'cp -r /packages/deb /output/ && cp -r /packages/rpm /output/'
|
||||
@echo "DEB packages created:"
|
||||
ls -la build/deb/
|
||||
@echo "RPM packages created:"
|
||||
ls -la build/rpm/
|
||||
|
||||
## package-rpm: Build RPM package (requires Docker)
|
||||
package-rpm: build-linux
|
||||
mkdir -p build/rpm
|
||||
docker build --no-cache -t ja4sentinel-packager-rpm \
|
||||
--build-arg VERSION=$(PKG_VERSION) \
|
||||
--build-arg ARCH=x86_64 \
|
||||
-f packaging/Dockerfile.rpm .
|
||||
@echo "Extracting RPM from Docker image..."
|
||||
docker run --rm ja4sentinel-packager-rpm sh -c 'cat /packages/*.rpm' > build/rpm/ja4sentinel.rpm
|
||||
@echo "RPM package created: build/rpm/ja4sentinel.rpm"
|
||||
ls -la build/rpm/*.rpm
|
||||
package-rpm: package-deb
|
||||
@echo "RPM built together with DEB in Dockerfile.package"
|
||||
|
||||
## test-package-deb: Test DEB package installation in Docker
|
||||
test-package-deb: package-deb
|
||||
|
||||
Reference in New Issue
Block a user