build both hugo and nodejs in an alpine container, bump hugo to 127, remove go, start work on building nodejs from scratch using optimized build options
This commit is contained in:
parent
5233735c71
commit
ca6261ae29
4 changed files with 69 additions and 26 deletions
|
@ -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
|
46
Dockerfile
46
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" ]
|
30
Dockerfile.multistage
Normal file
30
Dockerfile.multistage
Normal file
|
@ -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" ]
|
|
@ -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)
|
||||
- ~~[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)
|
Loading…
Add table
Reference in a new issue