Make image smaller, use the correct platform
This commit is contained in:
parent
94ea99983c
commit
ad164ac7f2
@ -1,30 +1,28 @@
|
|||||||
FROM crystallang/crystal:1.8.0 as builder
|
FROM --platform=${TARGETPLATFORM:-linux/amd64} ghcr.io/openfaas/of-watchdog:0.9.10 as watchdog
|
||||||
|
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine as build
|
||||||
|
|
||||||
RUN apt update \
|
|
||||||
&& apt install -y curl \
|
|
||||||
&& echo "Pulling watchdog binary from Github." \
|
|
||||||
&& curl -sSL https://github.com/openfaas/faas/releases/download/0.9.6/fwatchdog > /usr/bin/fwatchdog \
|
|
||||||
&& chmod +x /usr/bin/fwatchdog
|
|
||||||
|
|
||||||
|
RUN apk add crystal shards
|
||||||
WORKDIR /home/app
|
WORKDIR /home/app
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
COPY function/shard.yml shard.yml
|
COPY function/shard.yml shard.yml
|
||||||
RUN shards install
|
RUN shards install
|
||||||
RUN crystal build main.cr -o handler --release
|
RUN crystal build main.cr -o handler --release --static
|
||||||
|
RUN strip handler
|
||||||
FROM crystallang/crystal:1.8.0
|
|
||||||
RUN apt install ca-certificates
|
|
||||||
|
|
||||||
|
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine as ship
|
||||||
# Add non root user
|
# Add non root user
|
||||||
RUN adduser app
|
# Add non root user
|
||||||
RUN mkdir -p /home/app
|
RUN addgroup -S app && adduser app -S -G app
|
||||||
|
RUN chown app /home/app
|
||||||
|
|
||||||
WORKDIR /home/app
|
WORKDIR /home/app
|
||||||
|
|
||||||
COPY --from=builder /usr/bin/fwatchdog .
|
COPY --from=build /home/app/function/ .
|
||||||
COPY --from=builder /home/app/function/ .
|
COPY --from=build /home/app/handler .
|
||||||
COPY --from=builder /home/app/handler .
|
COPY --from=watchdog /fwatchdog /home/app/fwatchdog
|
||||||
|
RUN chmod +x /home/app/fwatchdog
|
||||||
|
|
||||||
RUN chown -R app /home/app
|
RUN chown -R app /home/app
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user