diff --git a/.dockerignore b/.dockerignore index a06e41fd6..fb38043ca 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,7 +6,7 @@ contrib build docs tests -!build/dokku.deb +!build/package/* !tests/dhparam.pem !contrib/bash-completion !contrib/docker diff --git a/Dockerfile b/Dockerfile index d14634058..f317becd9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN addgroup --gid $DOKKU_GID dokku \ && adduser --uid $DOKKU_UID --gid $DOKKU_GID --disabled-password --gecos "" "dokku" COPY ./tests/dhparam.pem /tmp/dhparam.pem -COPY ./build/dokku.deb /tmp/dokku.deb +COPY ./build/package/ /tmp SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3005,DL3008 @@ -28,7 +28,7 @@ RUN echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections && apt-get update -qq \ && apt-get upgrade -qq -y \ && apt-get -qq -y --no-install-recommends --only-upgrade install openssl openssh-server \ - && apt-get -qq -y --no-install-recommends install rsync /tmp/dokku.deb \ + && apt-get -qq -y --no-install-recommends install rsync "/tmp/dokku-$(dpkg --print-architecture).deb" \ && apt-get purge -qq -y syslog-ng-core \ && apt-get autoremove -qq -y \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/contrib/release-dokku b/contrib/release-dokku index 655115240..436af96e3 100755 --- a/contrib/release-dokku +++ b/contrib/release-dokku @@ -43,7 +43,8 @@ fn-build-dokku() { pushd "$ROOT_DIR" >/dev/null GOLANG_VERSION="$(grep BUILD_IMAGE common.mk | cut -d' ' -f3 | cut -d':' -f2)" - docker build \ + docker buildx build \ + --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \ --build-arg DOKKU_VERSION="$DOKKU_VERSION" \ --build-arg DOKKU_GIT_REV="$DOKKU_GIT_REV" \ --build-arg IS_RELEASE="$IS_RELEASE" \ @@ -395,7 +396,11 @@ main() { fn-extract-package "$IS_RELEASE" "dokku_${NEXT_VERSION}_arm64.deb" || log-fail "Error extracting deb package" fn-extract-package "$IS_RELEASE" "dokku_${NEXT_VERSION}_amd64.deb" || log-fail "Error extracting deb package" fn-extract-package "$IS_RELEASE" "dokku-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error extracting rpm package" - cp -f "build/dokku_${NEXT_VERSION}_amd64.deb" build/dokku.deb + mkdir -p build/package + cp -f "build/dokku_${NEXT_VERSION}_amd64.deb" build/package/dokku-amd64.deb + cp -f "build/dokku_${NEXT_VERSION}_arm64.deb" build/package/dokku-arm64.deb + cp -f "build/dokku_${NEXT_VERSION}_armhf.deb" build/package/dokku-armhf.deb + cp -f "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" build/package/dokku-amd64.rpm if [[ "$RELEASE" != "build" ]]; then fn-publish-package "$IS_RELEASE" "raspbian" "build/dokku_${NEXT_VERSION}_armhf.deb" || log-fail "Error publishing deb package" @@ -416,9 +421,6 @@ main() { git reset -q HEAD plugins/*/plugin.toml git checkout -- plugins/*/plugin.toml fi - - echo "build/dokku_${NEXT_VERSION}_amd64.deb" >build/deb-filename - echo "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" >build/rpm-filename } main "$@" diff --git a/tests/ci/setup.sh b/tests/ci/setup.sh index 231510e4e..5a5760649 100755 --- a/tests/ci/setup.sh +++ b/tests/ci/setup.sh @@ -74,14 +74,13 @@ build_dokku() { echo "=====> build_dokku on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX" "${ROOT_DIR}/contrib/release-dokku" build - cp "$(cat "${ROOT_DIR}/build/deb-filename")" "${ROOT_DIR}/build/dokku.deb" - cp "$(cat "${ROOT_DIR}/build/rpm-filename")" "${ROOT_DIR}/build/dokku.rpm" } install_dokku() { echo "=====> install_dokku on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX" - if [[ ! -f "${ROOT_DIR}/build/deb-filename" ]]; then + local architecture="$(dpkg --print-architecture)" + if [[ ! -f "${ROOT_DIR}/build/package/dokku-${architecture}.deb" ]]; then build_dokku fi @@ -98,9 +97,9 @@ EOF echo "-----> End debconf selections" sleep 5 - echo "-----> Start install $(cat "${ROOT_DIR}/build/deb-filename") via dpkg" - sudo TRACE=1 dpkg -i "$(cat "${ROOT_DIR}/build/deb-filename")" - echo "-----> End install $(cat "${ROOT_DIR}/build/deb-filename") via dpkg" + echo "-----> Start install ${ROOT_DIR}/build/package/dokku-${architecture}.deb via dpkg" + sudo TRACE=1 dpkg -i "${ROOT_DIR}/build/package/dokku-${architecture}.deb" + echo "-----> End install ${ROOT_DIR}/build/package/dokku-${architecture}.deb via dpkg" } build_dokku_docker_image() {