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

Add sample, stack and port to ARM64


Signed-off-by: default avatarAlex Ellis <alexellis2@gmail.com>
parent b04dffdc
No related branches found
No related tags found
No related merge requests found
FROM debian:stretch
RUN mkdir -p /usr/local/go
ENV PATH=$PATH:/usr/local/go/bin
RUN apt update && apt -qy install curl \
&& curl -SL https://storage.googleapis.com/golang/go1.9.linux-arm64.tar.gz > go1.9.linux-arm64.tar.gz \
&& tar -xvf go1.9.linux-arm64.tar.gz -C /usr/local/go --strip-components=1
RUN go version
CMD ["/bin/sh"]
FROM arm64v8/alpine:3.5
workdir /root
RUN apk add --update libarchive-tools
ADD https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-arm64.tar.gz /root/
RUN bsdtar -xvf prometheus-*.tar.gz -C ./ --strip-components=1
RUN mkdir -p /usr/share/prometheus
RUN mkdir -p /etc/prometheus
RUN cp prometheus /bin/prometheus
RUN cp promtool /bin/promtool
RUN cp prometheus.yml /etc/prometheus/prometheus.yml
RUN cp -r console_libraries/ /usr/share/prometheus/console_libraries/
RUN cp -r consoles/ /usr/share/prometheus/consoles/
#RUN ln -s /usr/share/prometheus/console_libraries /usr/share/prometheus/consoles/ /etc/prometheus/
EXPOSE 9090
VOLUME [ "/prometheus" ]
WORKDIR /prometheus
ENTRYPOINT [ "/bin/prometheus" ]
CMD [ "-config.file=/etc/prometheus/prometheus.yml", \
"-storage.local.path=/prometheus", \
"-web.console.libraries=/usr/share/prometheus/console_libraries", \
"-web.console.templates=/usr/share/prometheus/consoles" ]
version: "3.2"
services:
gateway:
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- 8080:8080
image: alexellis2/gateway:0.6.6-beta-arm64
networks:
- functions
environment:
dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD
deploy:
placement:
constraints:
- 'node.role == manager'
- 'node.platform.os == linux'
prometheus:
image: alexellis2/prometheus:1.5.2-arm64
command: "-config.file=/etc/prometheus/prometheus.yml -storage.local.path=/prometheus -storage.local.memory-chunks=10000 --alertmanager.url=http://alertmanager:9093"
ports:
- 9090:9090
depends_on:
- gateway
- alertmanager
environment:
no_proxy: "gateway"
networks:
- functions
deploy:
placement:
constraints:
- 'node.role == manager'
- 'node.platform.os == linux'
networks:
functions:
driver: overlay
# Docker does not support this option yet - maybe create outside of the stack and reference as "external"?
#attachable: true
FROM alexellis2/golang:1.9-arm64 as build
WORKDIR /go/src/github.com/alexellis/faas/gateway
ENV GOPATH=/go
COPY vendor vendor
COPY handlers handlers
COPY metrics metrics
COPY requests requests
COPY tests tests
COPY types types
COPY queue queue
COPY plugin plugin
COPY server.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gateway .
FROM debian:stretch
WORKDIR /root/
EXPOSE 8080
ENV http_proxy ""
ENV https_proxy ""
COPY --from=build /go/src/github.com/alexellis/faas/gateway/gateway .
COPY assets assets
CMD ["./gateway"]
FROM arm64v8/alpine:3.6
ADD https://github.com/alexellis/faas/releases/download/0.6.5/fwatchdog-arm64 /usr/bin/fwatchdog
# COPY ./fwatchdog /usr/bin/
RUN chmod +x /usr/bin/fwatchdog
# Populate example here
# ENV fprocess="wc -l"
HEALTHCHECK --interval=5s CMD [ -e /tmp/.lock ] || exit 1
CMD ["fwatchdog"]
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