diff --git a/.github/workflows/build.yml b/.forgejo/workflows/build.yml similarity index 90% rename from .github/workflows/build.yml rename to .forgejo/workflows/build.yml index 2b00d30..80cced9 100644 --- a/.github/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -3,17 +3,16 @@ name: Build And Publish Docker on: push: branches: - - "alpine" + - "master" jobs: build: runs-on: debian-bookworm - strategy: - matrix: - hugo-version: ["0.126.3"] - node-version: ["22.2.0"] - go-version: ["1.22.3"] + strategy: + matrix: + hugo-version: ["0.127.0", "0.126.0", "0.125.0"] + node-version: ["22"] steps: - uses: actions/checkout@v3 diff --git a/Dockerfile b/Dockerfile index a35d556..db46ade 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,34 @@ -ARG GO_VERSION="1.22.3" -FROM golang:${GO_VERSION}-alpine3.20 +FROM alpine:3.20 +ARG HUGO_VERSION="0.127.0" +ARG NODE_VERSION="22" -ARG HUGO_VERSION="0.126.3" -ARG NODE_VERSION="22.2.0" +RUN apk add --update --no-cache rsync unzip openssh libssl3 openssl-dev curl ninja pkgconf icu-dev git linux-headers libc6-compat make g++ gcc libgcc libstdc++ python3 py3-pip +# RUN apk add --update --no-cache rsync curl openssh git libc6-compatlibgcc libstdc++ + +WORKDIR /tmp + +RUN curl -sL -o hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz && \ + tar -xf "hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" && \ + cp ./hugo /usr/bin/hugo && \ + hugo version + +RUN curl -sL -o node-${NODE_VERSION}.x.zip "https://github.com/nodejs/node/archive/refs/heads/v${NODE_VERSION}.x.zip" && unzip "node-${NODE_VERSION}.x.zip" &&\ + cd node-${NODE_VERSION}.x && \ + ./configure --with-intl=system-icu --ninja --shared-openssl --shared && \ + make && \ + make install + +# RUN curl -fsSL https://unofficial-builds.nodejs.org/download/release/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64-musl.tar.gz -o node-v${NODE_VERSION}.tar.gz && \ +# tar -xzf node-v${NODE_VERSION}.tar.gz && \ +# mv /tmp/node-v${NODE_VERSION}-linux-x64-musl /usr/local/lib/nodejs && \ +# ln -s /usr/local/lib/nodejs/bin/node /usr/local/bin/node && \ +# ln -s /usr/local/lib/nodejs/bin/npm /usr/local/bin/npm && \ +# npm i -g yarn pnpm -RUN apk update -RUN apk add tar gzip curl rsync bash xz -RUN mkdir /tmp/temph RUN mkdir /home/app -WORKDIR /tmp/temph -RUN wget "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" -RUN tar -xf "node-v${NODE_VERSION}-linux-x64.tar.xz" -RUN cp -R node-v${NODE_VERSION}-linux-x64/bin/* /usr/bin/ -RUN npm i -g yarn pnpm -RUN wget "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz" -RUN tar -xf "hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz" -RUN mv ./hugo /usr/bin/hugo WORKDIR /home/app -RUN rm -rfv /tmp/temph -ENTRYPOINT [ "/bin/bash" ] +RUN rm -rfv /tmp/* && \ + apk del git linux-headers python3 py3-pip make g++ gcc ninja + +ENTRYPOINT [ "/bin/sh" ] \ No newline at end of file diff --git a/Dockerfile.multistage b/Dockerfile.multistage new file mode 100644 index 0000000..a3db543 --- /dev/null +++ b/Dockerfile.multistage @@ -0,0 +1,30 @@ +# Build stage +FROM alpine:3.20 AS build +ARG HUGO_VERSION="0.127.0" +ARG NODE_VERSION="22" + +RUN apk add --update --no-cache rsync unzip openssh libssl3 openssl-dev curl ninja pkgconf icu-dev git linux-headers libc6-compat make g++ gcc libgcc libstdc++ python3 py3-pip + +WORKDIR /tmp + +RUN curl -sL -o hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz && \ + tar -xf "hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" && \ + cp ./hugo /usr/bin/hugo && \ + hugo version + +RUN curl -sL -o node-${NODE_VERSION}.x.zip "https://github.com/nodejs/node/archive/refs/heads/v${NODE_VERSION}.x.zip" && unzip "node-${NODE_VERSION}.x.zip" &&\ + cd node-${NODE_VERSION}.x && \ + ./configure --with-intl=system-icu --ninja --shared-openssl --shared && \ + make && \ + make install + +# Final stage +FROM alpine:3.20 + +RUN apk add --update --no-cache rsync openssh libssl3 openssl-dev libgcc libstdc++ libc6-compat + +COPY --from=build /usr/bin/hugo /usr/bin/hugo +RUN mkdir /home/app +WORKDIR /home/app + +ENTRYPOINT [ "/bin/sh" ] \ No newline at end of file diff --git a/README.md b/README.md index af59cb3..dffac67 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ docker run -p 1313:1313 -v .:/home/app -ti --network=host git.myco.systems/mycos ## Links -~~[Docker](https://hub.docker.com/r/betterweb/hugo)~~ -~~[Github](https://github.com/BetterCorp/hugo)~~ -[MycoSystems Packages](https://git.myco.systems/mycosystems/-/packages/container/hugo-ci/versions) \ No newline at end of file +- ~~[BetterWeb Docker](https://hub.docker.com/r/betterweb/hugo)~~ + +- ~~[BeterCorp Github](https://github.com/BetterCorp/hugo)~~ + +- [MycoSystems Packages](https://git.myco.systems/mycosystems/-/packages/container/hugo-ci/versions) \ No newline at end of file