Compare commits

...

2 Commits

4 changed files with 15 additions and 34 deletions

View File

@ -15,7 +15,3 @@ functions:
lang: python3-flask
handler: ./tapas
image: ralsina/tapas:latest
tapas2:
lang: crystal
handler: ./tapas2
image: ralsina/tapas2:latest

View File

@ -1,7 +0,0 @@
require "json"
class Handler
def run(req : String)
return JSON::Any.new("Hello, Crystal. You said: #{req}")
end
end

View File

@ -1,7 +0,0 @@
name: crystal_faas_function
version: 0.1.0
# dependencies:
# pg:
# github: will/crystal-pg
# version: "~> 0.5"

View File

@ -1,30 +1,29 @@
FROM crystallang/crystal:1.8.0 as builder
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
FROM --platform=${TARGETPLATFORM:-linux/amd64} ghcr.io/openfaas/of-watchdog:0.9.10 as watchdog
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine as build
RUN apk update && apk upgrade
RUN apk add crystal shards
WORKDIR /home/app
COPY . .
COPY function/shard.yml shard.yml
RUN shards install
RUN crystal build main.cr -o handler --release
FROM crystallang/crystal:1.8.0
RUN apt install ca-certificates
RUN crystal build main.cr -o handler --release --static
RUN strip handler
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine as ship
RUN apk update && apk upgrade
# Add non root user
RUN adduser app
RUN mkdir -p /home/app
# Add non root user
RUN addgroup -S app && adduser app -S -G app
RUN chown app /home/app
WORKDIR /home/app
COPY --from=builder /usr/bin/fwatchdog .
COPY --from=builder /home/app/function/ .
COPY --from=builder /home/app/handler .
COPY --from=build /home/app/function/ .
COPY --from=build /home/app/handler .
COPY --from=watchdog /fwatchdog /home/app/fwatchdog
RUN chmod +x /home/app/fwatchdog
RUN chown -R app /home/app