Workaround for segmentation faults in hugo_extended registry image
- Run muslstack on hugo executable to extend thread stack size to 8MB - Introduce multi-stage builds to reduce image size further - Use alpine:image for the final image muslstack utility: https://github.com/yaegashi/muslstack muslstack test cases using Hugo extended version: https://github.com/yaegashi/muslstack/tree/master/tests/hugo
This commit is contained in:
parent
4898d6a835
commit
22f0d5cbd6
33
Dockerfile
33
Dockerfile
@ -1,27 +1,30 @@
|
|||||||
FROM alpine:latest
|
FROM golang:1.12-alpine
|
||||||
|
|
||||||
ARG HUGO=hugo
|
ARG HUGO=hugo
|
||||||
ARG HUGO_VERSION=0.55.6
|
ARG HUGO_VERSION=0.55.6
|
||||||
ARG HUGO_APK="ca-certificates openssl git"
|
|
||||||
ARG HUGO_SHA=39d3119cdb9ba5d6f1f1b43693e707937ce851791a2ea8d28003f49927c428f4
|
ARG HUGO_SHA=39d3119cdb9ba5d6f1f1b43693e707937ce851791a2ea8d28003f49927c428f4
|
||||||
ARG HUGO_EXTENDED_APK="libc6-compat libstdc++"
|
|
||||||
ARG HUGO_EXTENDED_SHA=8962b8cdc0ca220da97293cea0bb1b31718cb4d99d0766be6865cb976b1c1805
|
ARG HUGO_EXTENDED_SHA=8962b8cdc0ca220da97293cea0bb1b31718cb4d99d0766be6865cb976b1c1805
|
||||||
|
|
||||||
# Install HUGO
|
|
||||||
RUN set -eux && \
|
RUN set -eux && \
|
||||||
case ${HUGO} in \
|
case ${HUGO} in \
|
||||||
*_extended) \
|
*_extended) \
|
||||||
HUGO_APK="${HUGO_APK} ${HUGO_EXTENDED_APK}" \
|
|
||||||
HUGO_SHA="${HUGO_EXTENDED_SHA}" ;; \
|
HUGO_SHA="${HUGO_EXTENDED_SHA}" ;; \
|
||||||
esac && \
|
esac && \
|
||||||
apk add --update --no-cache ${HUGO_APK} && \
|
apk add --update --no-cache ca-certificates openssl git && \
|
||||||
wget -O ${HUGO_VERSION}.tar.gz https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/${HUGO}_${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
wget -O ${HUGO_VERSION}.tar.gz https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/${HUGO}_${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
||||||
echo "${HUGO_SHA} ${HUGO_VERSION}.tar.gz" | sha256sum -c && \
|
echo "${HUGO_SHA} ${HUGO_VERSION}.tar.gz" | sha256sum -c && \
|
||||||
tar xf ${HUGO_VERSION}.tar.gz && mv hugo* /usr/bin/hugo && \
|
tar xf ${HUGO_VERSION}.tar.gz && mv hugo* /usr/bin/hugo
|
||||||
rm -rf ${HUGO_VERSION}.tar.gz && \
|
RUN go get github.com/yaegashi/muslstack
|
||||||
rm -rf /var/cache/apk/* && \
|
RUN muslstack -s 0x800000 /usr/bin/hugo
|
||||||
hugo version
|
|
||||||
|
|
||||||
|
FROM alpine:edge
|
||||||
|
ARG HUGO=hugo
|
||||||
|
COPY --from=0 /usr/bin/hugo /usr/bin
|
||||||
|
RUN set -eux && \
|
||||||
|
case ${HUGO} in \
|
||||||
|
*_extended) \
|
||||||
|
apk add --update --no-cache libc6-compat libstdc++ && \
|
||||||
|
rm -rf /var/cache/apk/* ;; \
|
||||||
|
esac && \
|
||||||
|
hugo version
|
||||||
EXPOSE 1313
|
EXPOSE 1313
|
||||||
|
WORKDIR /src
|
||||||
CMD ["/usr/bin/hugo"]
|
CMD ["/usr/bin/hugo"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user