Skip to content
Snippets Groups Projects
Commit 0d1962de authored by Alex Ellis's avatar Alex Ellis
Browse files

Add GCC/C example.


Signed-off-by: default avatarAlex Ellis <alexellis2@gmail.com>
parent fbe846aa
No related branches found
No related tags found
No related merge requests found
template
build
master.zip
Hello World in C
===================
This is hello world in C using GCC and Alpine Linux.
It also makes use of a multi-stage build and a `scratch` container for the runtime.
```
$ faas-cli build -f ./stack.yml
```
If pushing to a remote registry change the name from `alexellis` to your own Hub account.
```
$ faas-cli push -f ./stack.yml
$ faas-cli deploy -f ./stack.yml
```
Then invoke via `curl`, `faas-cli` or the UI.
FROM alpine:3.6 as builder
RUN apk add --no-cache curl \
&& curl -SL https://github.com/alexellis/faas/releases/download/0.6.4/fwatchdog > /usr/bin/fwatchdog \
&& chmod +x /usr/bin/fwatchdog \
&& apk --no-cache del curl
WORKDIR /root/
RUN apk add --no-cache gcc \
musl-dev
COPY main.c .
RUN gcc main.c -static -o /main \
&& chmod +x /main \
&& /main
FROM scratch
COPY --from=builder /main /
COPY --from=builder /usr/bin/fwatchdog /
COPY --from=builder /tmp /tmp
ENV fprocess="/main"
CMD ["/fwatchdog"]
#include<stdio.h>
int main() {
printf("Hello world\n");
return 0;
}
provider:
name: faas
gateway: http://localhost:8080
functions:
helloc:
lang: Dockerfile
handler: ./src
image: alexellis/helloc
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment