Compare commits

..

14 Commits

Author SHA1 Message Date
charlesgauthereau 0e86a813b5 chore(release): 1.0.4-rc.12 2026-01-28 22:00:27 +01:00
charlesgauthereau ecdb4a067d chore(release): 1.0.4-rc.11 2026-01-28 21:48:08 +01:00
charlesgauthereau 8078d733e4 chore(release): 1.0.4-rc.10 2026-01-28 21:40:05 +01:00
charlesgauthereau 06c4a05cbe chore(release): 1.0.4-rc.9 2026-01-28 21:38:58 +01:00
charlesgauthereau 6985260a8e chore(release): 1.0.4-rc.8 2026-01-28 21:24:24 +01:00
charlesgauthereau 313693f50b chore(release): 1.0.4-rc.7 2026-01-28 21:20:53 +01:00
charlesgauthereau 2e7ccb7897 chore(release): 1.0.4-rc.6 2026-01-28 21:12:45 +01:00
charlesgauthereau 11cba862ab chore(release): 1.0.4-rc.5 2026-01-28 21:03:56 +01:00
charlesgauthereau 7b40ce6d83 chore(release): 1.0.4-rc.4 2026-01-28 20:49:05 +01:00
charlesgauthereau e6b0653e48 chore(release): 1.0.4-rc.3 2026-01-28 20:42:54 +01:00
charlesgauthereau a215c95b5e chore(release): 1.0.4-rc.2 2026-01-28 20:38:22 +01:00
charlesgauthereau 6fb3b8bb37 chore(release): 1.0.4-rc.1 2026-01-28 19:47:21 +01:00
charlesgauthereau aedb6a0ebc fix: Dockerfile 2026-01-28 19:46:14 +01:00
charlesgauthereau 97c770becf fix: Dockerfile 2026-01-28 17:21:30 +01:00
7 changed files with 278 additions and 34 deletions
+145 -25
View File
@@ -1,3 +1,74 @@
#name: Docker Publish
#
#on:
# workflow_call:
# inputs:
# image_name:
# required: false
# type: string
# default: 'portabase/agent'
# add_latest:
# required: false
# type: boolean
# default: false
# target:
# required: false
# type: string
# default: 'prod'
# dockerfile:
# required: false
# type: string
# default: './docker/Dockerfile'
# secrets:
# DOCKER_USERNAME:
# required: true
# DOCKER_PASSWORD:
# required: true
#
#jobs:
# build-and-push:
# runs-on: ubuntu-latest
# permissions:
# packages: write
# contents: read
# steps:
# - name: Check out the repo
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
#
# - name: Set up QEMU (enables multi-arch emulation)
# uses: docker/setup-qemu-action@v3
#
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
#
# - name: Log in to Docker Hub
# uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
#
# - name: Set tags
# id: set-tags
# run: |
# REF_NAME=${GITHUB_REF#refs/tags/}
# TAGS="${{ inputs.image_name }}:$REF_NAME"
# if [[ "${{ inputs.add_latest }}" == "true" ]]; then
# TAGS="$TAGS,${{ inputs.image_name }}:latest"
# fi
# echo "tags=$TAGS" >> $GITHUB_OUTPUT
#
# - name: Build and push Docker image
# uses: docker/build-push-action@v6
# with:
# context: .
# file: ${{ inputs.dockerfile }}
# platforms: linux/amd64,linux/arm64
# push: true
# tags: ${{ steps.set-tags.outputs.tags }}
# target: ${{ inputs.target }}
name: Docker Publish
on:
@@ -26,45 +97,94 @@ on:
required: true
jobs:
build-and-push:
build-amd64:
name: Build AMD64 Image
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
outputs:
image: ${{ steps.set-tags.outputs.amd64_image }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/checkout@v4
- name: Set up QEMU (enables multi-arch emulation)
uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
- uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set tags
- name: Set image tag
id: set-tags
run: |
REF_NAME=${GITHUB_REF#refs/tags/}
TAGS="${{ inputs.image_name }}:$REF_NAME"
if [[ "${{ inputs.add_latest }}" == "true" ]]; then
TAGS="$TAGS,${{ inputs.image_name }}:latest"
fi
echo "tags=$TAGS" >> $GITHUB_OUTPUT
AMD64_IMAGE="${{ inputs.image_name }}:$REF_NAME-amd64"
echo "amd64_image=$AMD64_IMAGE" >> $GITHUB_OUTPUT
- name: Build and push Docker image
- name: Build and push AMD64
uses: docker/build-push-action@v6
with:
context: .
file: ${{ inputs.dockerfile }}
platforms: linux/amd64,linux/arm64
platforms: linux/amd64
push: true
tags: ${{ steps.set-tags.outputs.tags }}
target: ${{ inputs.target }}
tags: ${{ steps.set-tags.outputs.amd64_image }}
target: ${{ inputs.target }}
build-arm64:
name: Build ARM64 Image
runs-on: ubuntu-24.04-arm
needs: build-amd64
outputs:
image: ${{ steps.set-tags.outputs.arm64_image }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set image tag
id: set-tags
run: |
REF_NAME=${GITHUB_REF#refs/tags/}
ARM64_IMAGE="${{ inputs.image_name }}:$REF_NAME-arm64"
echo "arm64_image=$ARM64_IMAGE" >> $GITHUB_OUTPUT
- name: Build and push ARM64
uses: docker/build-push-action@v6
with:
context: .
file: ${{ inputs.dockerfile }}
platforms: linux/arm64
push: true
tags: ${{ steps.set-tags.outputs.arm64_image }}
target: ${{ inputs.target }}
create-manifest:
name: Create Multi-Arch Manifest
runs-on: ubuntu-latest
needs:
- build-amd64
- build-arm64
steps:
- uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Create Docker manifest
run: |
REF_NAME=${GITHUB_REF#refs/tags/}
IMAGE="${{ inputs.image_name }}:$REF_NAME"
AMD64_IMAGE="${{ needs.build-amd64.outputs.image }}"
ARM64_IMAGE="${{ needs.build-arm64.outputs.image }}"
docker manifest create $IMAGE $AMD64_IMAGE $ARM64_IMAGE
docker manifest push $IMAGE
if [ "${{ inputs.add_latest }}" = "true" ]; then
docker manifest create ${{ inputs.image_name }}:latest $AMD64_IMAGE $ARM64_IMAGE
docker manifest push ${{ inputs.image_name }}:latest
fi
+1 -1
View File
@@ -22,5 +22,5 @@ keywords:
- self-hosted
- portabase
license: Apache-2.0
version: 1.0.3
version: 1.0.4-rc.12
date-released: "2026-01-28"
Generated
+1 -1
View File
@@ -1595,7 +1595,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]]
name = "portabase-agent"
version = "1.0.3-rc.16"
version = "1.0.4-rc.11"
dependencies = [
"anyhow",
"async-trait",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "portabase-agent"
version = "1.0.3"
version = "1.0.4-rc.12"
edition = "2024"
[dependencies]
+6 -5
View File
@@ -1,10 +1,11 @@
services:
rust-app:
# build:
# context: .
# dockerfile: docker/Dockerfile
# target: prod
image: portabase/agent:latest
build:
context: .
dockerfile: docker/Dockerfile
target: prod
# image: portabase/agent:latest
platform: linux/arm64
container_name: rust-prod
volumes:
- ./databases.json:/config/config.json
+1 -1
View File
@@ -16,7 +16,7 @@ services:
APP_ENV: development
LOG: debug
TZ: "Europe/Paris"
EDGE_KEY: "eyJzZXJ2ZXJVcmwiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODciLCJhZ2VudElkIjoiNjc4M2QwY2UtNjY1MS00YzM0LTg4YjYtNDhmMmU5YWQ3NGNhIiwicHVibGljS2V5IjoiLS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tXG5NSUlCQ2dLQ0FRRUFybjR5bk9OUUwzMGZITERBTjRuNGN4OTNkOHZSTVBzaVYyY2xSU1lDWkNHYnlqakhURW5mXG52dzQ5V1ltS0w3STJJK1dLa00wOEMvQ0NISVlMOE13WSsyNjNnN1dmcjJsQzdIOTFQOTFTK1ZtcCtuREZxVGM5XG45VEZiNXpwb09yaXNZQ3o4M2VLeTV1Q3ZCWXpMODhicmhXNVBlU0VPN3R4SFZBaEp3aWVMWU1JTjJvdTBzWFFiXG5DQ200T3FjRGJBeCs1WmNZVjBPM2NTMjlvNWxaYlV4ZHdxcHl6bjFCSnRETXErYS9tVjFDekxBeGNMd0llNW1WXG5LalBjM01EQ3NvcGJ5czhqcFQ2eFcvSGd5b0c0MkhnL0g3RDdKK21BYlRKZ2JyVGVLdkdaQ1dzMDZGR0hrK1RFXG5RdExwOUprR1lhenVDVFF4TlIvTUU0ejFlNGFrOGsxNmlRSURBUUFCXG4tLS0tLUVORCBSU0EgUFVCTElDIEtFWS0tLS0tXG4ifQ"
EDGE_KEY: "eyJzZXJ2ZXJVcmwiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODciLCJhZ2VudElkIjoiOGZmMDE4NTQtYjJhMS00ZTE0LTkwMjctZTJiOWIxZjQ1YzdlIiwicHVibGljS2V5IjoiLS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tXG5NSUlCQ2dLQ0FRRUE5TWV4M2pmdnVLdFB5YU1ERnh2Ulp2dmd3YkRJQ2JzQi81Wll5NDNSVVRBaXZRYjJiSDdYXG5qRHBQd1lJeCs4UFBrbHlRbDVMQzV1UWZEaCs4SVd4OG1LZ3FvMXpWMkdiZXdGbEdEWFYxVEdyU1ZEU25aSWR4XG52bWdYc29EeXhVMlJvWUFUMS9YMWxuc2YxenZKdkFMTkhXdEhRdk42SjVDZTFSMmFsendVRGFEVXlJNzRmSldQXG5tNTh0SDMrYklXL0VVTXdjaWNxM0oySWw3Vm9KNkZNUHJQL1ZSOWEvdFF1SU1qa200MXpFY2NscExPa2luRkxuXG54NmVUWkFSZUpya2UrbnRvZ2t4TGEyRWV5a1lUNzB4V3hKNWp5ZExBVnRvNkkyQlVLVVJoTkowTUFaU29NYUtvXG5iMGJRcnY1UzExZWllMnMrT2I3aTYzSFpkVUx0UmV1MVJ3SURBUUFCXG4tLS0tLUVORCBSU0EgUFVCTElDIEtFWS0tLS0tXG4ifQ"
#POOLING: 1
#DATABASES_CONFIG_FILE: "config.toml"
extra_hosts:
+123
View File
@@ -110,3 +110,126 @@ COPY --from=base /usr/local/mongodb/bin/ /usr/local/mongodb/bin/
ENV APP_ENV=production
CMD ["/entrypoint.sh"]
# =========================
# Base image (shared)
# =========================
#FROM rust:1.92.0 AS base
#
#RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
# pkg-config \
# libssl-dev \
# tzdata \
# redis-server \
# ca-certificates \
# libpq5 \
# libreadline8 \
# libncurses6 \
# zlib1g \
# curl \
# mariadb-client \
# && apt-get clean \
# && rm -rf /var/lib/apt/lists/*
#
#ARG TARGETARCH
#
## =========================
## PostgreSQL client binaries (versions 12-18)
## =========================
#RUN for v in 12 13 14 15 16 17 18; do mkdir -p /usr/lib/postgresql/$v/bin; done
#
#COPY assets/tools/amd64/postgresql/ /tmp/pg-x64/
#COPY assets/tools/arm64/postgresql/ /tmp/pg-arm/
#
#RUN if [ "$TARGETARCH" = "amd64" ]; then \
# for v in 12 13 14 15 16 17 18; do \
# cp -r /tmp/pg-x64/postgresql-$v/bin/* /usr/lib/postgresql/$v/bin/; \
# done; \
# else \
# for v in 12 13 14 15 16 17 18; do \
# cp -r /tmp/pg-arm/postgresql-$v/bin/* /usr/lib/postgresql/$v/bin/; \
# done; \
# fi && \
# rm -rf /tmp/pg-x64 /tmp/pg-arm && \
# chmod +x /usr/lib/postgresql/*/bin/*
#
## =========================
## MongoDB client binaries
## =========================
#COPY assets/tools/${TARGETARCH}/mongodb/ /usr/local/mongodb/
#RUN chmod +x /usr/local/mongodb/bin/*
#
#WORKDIR /app
#
## =========================
## Development image
## =========================
#FROM base AS dev
#
#RUN cargo install cargo-watch
#
#COPY Cargo.toml Cargo.lock ./
#RUN mkdir src && echo "fn main() {}" > src/main.rs
#RUN cargo build
#RUN rm -rf src
#
#COPY entrypoint.sh /entrypoint.sh
#RUN chmod +x /entrypoint.sh
#
#CMD ["/entrypoint.sh"]
#
## =========================
## Builder (production)
## =========================
#FROM base AS builder
#
#ARG TARGETARCH
#
#RUN rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
#
#COPY . .
#
#RUN if [ "$TARGETARCH" = "amd64" ]; then \
# cargo build --release --target x86_64-unknown-linux-gnu && \
# mv /app/target/x86_64-unknown-linux-gnu/release /app/target/release-app; \
# else \
# cargo build --release --target aarch64-unknown-linux-gnu && \
# mv /app/target/aarch64-unknown-linux-gnu/release /app/target/release-app; \
# fi
#
#
#RUN echo "APP_VERSION=$(cargo pkgid | awk -F# '{print $2}')" > /app/version.env
#
## =========================
## Runtime (production)
## =========================
#FROM ubuntu:24.04 AS prod
#
#RUN apt-get update && apt-get install -y \
# redis-server \
# ca-certificates \
# tzdata \
# libpq5 \
# libreadline8 \
# libncurses6 \
# zlib1g \
# mariadb-client \
# && rm -rf /var/lib/apt/lists/*
#
#WORKDIR /app
#
#ARG TARGETARCH
#
#COPY --from=builder /app/target/release-app/app /usr/local/bin/app
#
#COPY --from=builder /app/version.env /app/version.env
#COPY entrypoint.sh /entrypoint.sh
#RUN chmod +x /entrypoint.sh
#
#COPY --from=base /usr/lib/postgresql/ /usr/lib/postgresql/
#COPY --from=base /usr/local/mongodb/bin/ /usr/local/mongodb/bin/
#
#ENV APP_ENV=production
#
#CMD ["/entrypoint.sh"]