mirror of
https://github.com/openfaas/faas.git
synced 2025-06-09 00:36:46 +00:00
Convert Gateway to Github Actions
Signed-off-by: Alistair Hey <alistair@heyal.co.uk>
This commit is contained in:
parent
4ced7cacd0
commit
a5583074e0
127
.github/workflows/build.yml
vendored
Normal file
127
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
name: build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- '*'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '*'
|
||||||
|
# Auth
|
||||||
|
# Watchdog containers
|
||||||
|
# Watchdog bins + shas
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# Run the CI tests
|
||||||
|
build-test:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.13.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
- name: Run CI
|
||||||
|
run: make build test-ci
|
||||||
|
|
||||||
|
build-gateway:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.13.x]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
- name: Get TAG
|
||||||
|
id: get_tag
|
||||||
|
run: echo ::set-output name=TAG::latest-dev
|
||||||
|
- name: Get Repo Owner
|
||||||
|
id: get_repo_owner
|
||||||
|
run: echo ::set-output name=repo_owner::$(echo ${{ github.event.repository.owner.login }} | tr '[:upper:]' '[:lower:]')
|
||||||
|
- name: Build Gateway
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./gateway/Dockerfile
|
||||||
|
outputs: "type=image,push=false"
|
||||||
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
|
tags: |
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ steps.get_tag.outputs.TAG }}
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ github.sha }}
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:latest
|
||||||
|
|
||||||
|
build-watchdog:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.13.x]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
- name: Get TAG
|
||||||
|
id: get_tag
|
||||||
|
run: echo ::set-output name=TAG::latest-dev
|
||||||
|
- name: Get Repo Owner
|
||||||
|
id: get_repo_owner
|
||||||
|
run: echo ::set-output name=repo_owner::$(echo ${{ github.event.repository.owner.login }} | tr '[:upper:]' '[:lower:]')
|
||||||
|
- name: Build Watchdog
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./gateway/Dockerfile
|
||||||
|
outputs: "type=image,push=false"
|
||||||
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
|
tags: |
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ steps.get_tag.outputs.TAG }}
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ github.sha }}
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:latest
|
||||||
|
build-auth-containers:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.13.x]
|
||||||
|
svc: [
|
||||||
|
basic-auth
|
||||||
|
]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
- name: Get TAG
|
||||||
|
id: get_tag
|
||||||
|
run: echo ::set-output name=TAG::latest-dev
|
||||||
|
- name: Get Repo Owner
|
||||||
|
id: get_repo_owner
|
||||||
|
run: echo ::set-output name=repo_owner::$(echo ${{ github.event.repository.owner.login }} | tr '[:upper:]' '[:lower:]')
|
||||||
|
- name: Build ${{ matrix.svc }}
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
context: ./auth/${{ matrix.svc }}
|
||||||
|
file: ./auth/${{ matrix.svc }}/Dockerfile
|
||||||
|
outputs: "type=image,push=false"
|
||||||
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
|
tags: |
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/${{ matrix.svc }}:${{ steps.get_tag.outputs.TAG }}
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/${{ matrix.svc }}:${{ github.sha }}
|
||||||
|
ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/${{ matrix.svc }}:latest
|
39
.travis.yml
39
.travis.yml
@ -1,39 +0,0 @@
|
|||||||
sudo: required
|
|
||||||
|
|
||||||
language: go
|
|
||||||
go:
|
|
||||||
- "1.13.x"
|
|
||||||
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- docker-ce
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./build.sh
|
|
||||||
- ./contrib/ci.sh
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- if [ -z $DOCKER_NS ] ; then
|
|
||||||
export DOCKER_NS=openfaas;
|
|
||||||
fi
|
|
||||||
|
|
||||||
- if [ ! -z "$TRAVIS_TAG" ] ; then
|
|
||||||
export DOCKER_CLI_EXPERIMENTAL=enabled
|
|
||||||
|
|
||||||
export REGISTRY=docker.io;
|
|
||||||
./ci/registryLogin.sh $REGISTRY;
|
|
||||||
./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/gateway";
|
|
||||||
./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/basic-auth-plugin";
|
|
||||||
|
|
||||||
export REGISTRY=quay.io;
|
|
||||||
./ci/registryLogin.sh $REGISTRY;
|
|
||||||
./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/gateway";
|
|
||||||
./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/basic-auth-plugin";
|
|
||||||
|
|
||||||
fi
|
|
21
Makefile
21
Makefile
@ -1,4 +1,5 @@
|
|||||||
TAG?=latest
|
TAG?=latest
|
||||||
|
NS?=openfaas
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:
|
build:
|
||||||
@ -6,24 +7,12 @@ build:
|
|||||||
|
|
||||||
.PHONY: build-gateway
|
.PHONY: build-gateway
|
||||||
build-gateway:
|
build-gateway:
|
||||||
(cd gateway; ./build.sh latest-dev)
|
(cd gateway; docker buildx build --platform linux/amd64 -t $NS/gateway:latest-dev .)
|
||||||
|
|
||||||
.PHONY: test-ci
|
.PHONY: test-ci
|
||||||
test-ci:
|
test-ci:
|
||||||
./contrib/ci.sh
|
./contrib/ci.sh
|
||||||
|
|
||||||
.PHONY: ci-armhf-build
|
.PHONY: binaries
|
||||||
ci-armhf-build:
|
binaries:
|
||||||
(cd gateway; ./build.sh $(TAG) ; cd ../auth/basic-auth ; ./build.sh $(TAG))
|
echo TODO
|
||||||
|
|
||||||
.PHONY: ci-armhf-push
|
|
||||||
ci-armhf-push:
|
|
||||||
(cd gateway; ./push.sh $(TAG) ; cd ../auth/basic-auth ; ./push.sh $(TAG))
|
|
||||||
|
|
||||||
.PHONY: ci-arm64-build
|
|
||||||
ci-arm64-build:
|
|
||||||
(cd gateway; ./build.sh $(TAG) ; cd ../auth/basic-auth ; ./build.sh $(TAG))
|
|
||||||
|
|
||||||
.PHONY: ci-arm64-push
|
|
||||||
ci-arm64-push:
|
|
||||||
(cd gateway; ./push.sh $(TAG) ; cd ../auth/basic-auth ; ./push.sh $(TAG))
|
|
@ -1,11 +1,15 @@
|
|||||||
FROM teamserverless/license-check:0.3.6 as license-check
|
FROM --platform=${BUILDPLATFORM:-linux/amd64} teamserverless/license-check:0.3.6 as license-check
|
||||||
|
|
||||||
FROM golang:1.13-alpine3.11 as build
|
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.13 as build
|
||||||
|
|
||||||
ENV GO111MODULE=off
|
ENV GO111MODULE=off
|
||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
|
|
||||||
RUN apk add --no-cache curl ca-certificates
|
ARG TARGETPLATFORM
|
||||||
|
ARG BUILDPLATFORM
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
COPY --from=license-check /license-check /usr/bin/
|
COPY --from=license-check /license-check /usr/bin/
|
||||||
|
|
||||||
WORKDIR /go/src/handler
|
WORKDIR /go/src/handler
|
||||||
@ -13,13 +17,13 @@ COPY . .
|
|||||||
|
|
||||||
# Run a gofmt and exclude all vendored code.
|
# Run a gofmt and exclude all vendored code.
|
||||||
|
|
||||||
RUN license-check -path ./ --verbose=false "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
RUN license-check -path ./ --verbose=false "OpenFaaS Authors" "OpenFaaS Author(s)"
|
||||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH } test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))"
|
||||||
&& CGO_ENABLED=0 GOOS=linux \
|
RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH } \
|
||||||
go build --ldflags "-s -w" -a -installsuffix cgo -o handler . && \
|
go build --ldflags "-s -w" -a -installsuffix cgo -o handler . && \
|
||||||
go test $(go list ./... | grep -v /vendor/) -cover
|
go test $(go list ./... | grep -v /vendor/) -cover
|
||||||
|
|
||||||
FROM alpine:3.11 as ship
|
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 as ship
|
||||||
# Add non-root user
|
# Add non-root user
|
||||||
RUN addgroup -S app && adduser -S -g app app \
|
RUN addgroup -S app && adduser -S -g app app \
|
||||||
&& mkdir -p /home/app \
|
&& mkdir -p /home/app \
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
FROM teamserverless/license-check:0.3.6 as license-check
|
|
||||||
|
|
||||||
FROM golang:1.13-alpine3.11 as build
|
|
||||||
|
|
||||||
ENV GO111MODULE=off
|
|
||||||
ENV CGO_ENABLED=0
|
|
||||||
|
|
||||||
RUN apk add --no-cache curl ca-certificates gcc musl-dev
|
|
||||||
COPY --from=license-check /license-check /usr/bin/
|
|
||||||
|
|
||||||
WORKDIR /go/src/handler
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
# Run a gofmt and exclude all vendored code.
|
|
||||||
|
|
||||||
RUN license-check -path ./ --verbose=false "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
|
||||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
|
||||||
&& go test $(go list ./... | grep -v /vendor/) -cover && \
|
|
||||||
CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w" -a -installsuffix cgo -o handler .
|
|
||||||
|
|
||||||
FROM alpine:3.11
|
|
||||||
# Add non-root user
|
|
||||||
RUN addgroup -S app && adduser -S -g app app \
|
|
||||||
&& mkdir -p /home/app \
|
|
||||||
&& chown app /home/app
|
|
||||||
|
|
||||||
WORKDIR /home/app
|
|
||||||
|
|
||||||
COPY --from=build /go/src/handler/handler .
|
|
||||||
|
|
||||||
RUN chown -R app /home/app
|
|
||||||
|
|
||||||
USER app
|
|
||||||
|
|
||||||
WORKDIR /home/app
|
|
||||||
|
|
||||||
CMD ["./handler"]
|
|
||||||
|
|
4
build.sh
4
build.sh
@ -1,8 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [ ! -s "$TRAVIS_TAG" ] ; then
|
if [ ! -s "$TAG" ] ; then
|
||||||
echo "This build will be published under the tag: ${TRAVIS_TAG}"
|
echo "This build will be published under the tag: ${TAG}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
(cd gateway && ./build.sh)
|
(cd gateway && ./build.sh)
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
IMAGE_REGISTRY=$1
|
|
||||||
|
|
||||||
if [ "$IMAGE_REGISTRY" = "quay.io" ] ; then
|
|
||||||
USERNAME=$QUAY_USERNAME
|
|
||||||
PASSWORD=$QUAY_PASSWORD
|
|
||||||
elif [ "$IMAGE_REGISTRY" = "docker.io" ] ; then
|
|
||||||
USERNAME=$DOCKER_USERNAME
|
|
||||||
PASSWORD=$DOCKER_PASSWORD
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Attempting to log in to $IMAGE_REGISTRY"
|
|
||||||
echo $PASSWORD | docker login -u=$USERNAME --password-stdin $IMAGE_REGISTRY;
|
|
@ -1,50 +1,55 @@
|
|||||||
FROM teamserverless/license-check:0.3.6 as license-check
|
FROM --platform=${BUILDPLATFORM:-linux/amd64} teamserverless/license-check:0.3.6 as license-check
|
||||||
|
|
||||||
FROM golang:1.13 as build
|
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.13 as build
|
||||||
|
|
||||||
ENV GO111MODULE=off
|
ENV GO111MODULE=off
|
||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
ARG BUILDPLATFORM
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
ARG GIT_COMMIT_SHA
|
ARG GIT_COMMIT_SHA
|
||||||
ARG GIT_COMMIT_MESSAGE
|
ARG GIT_COMMIT_MESSAGE
|
||||||
ARG VERSION='dev'
|
ARG VERSION='dev'
|
||||||
ARG ARCH="x86_64"
|
|
||||||
ARG GOOS=linux
|
|
||||||
ARG GOARM
|
|
||||||
|
|
||||||
COPY --from=license-check /license-check /usr/bin/
|
COPY --from=license-check /license-check /usr/bin/
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
||||||
|
|
||||||
COPY vendor vendor
|
COPY gateway/vendor vendor
|
||||||
|
|
||||||
COPY handlers handlers
|
COPY gateway/handlers handlers
|
||||||
COPY metrics metrics
|
COPY gateway/metrics metrics
|
||||||
COPY requests requests
|
COPY gateway/requests requests
|
||||||
COPY tests tests
|
COPY gateway/tests tests
|
||||||
|
|
||||||
|
COPY gateway/types types
|
||||||
|
COPY gateway/queue queue
|
||||||
|
COPY gateway/plugin plugin
|
||||||
|
COPY gateway/version version
|
||||||
|
COPY gateway/scaling scaling
|
||||||
|
COPY gateway/pkg pkg
|
||||||
|
COPY gateway/main.go .
|
||||||
|
COPY .git .
|
||||||
|
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Authors" "OpenFaaS Author(s)"
|
||||||
|
|
||||||
COPY types types
|
|
||||||
COPY queue queue
|
|
||||||
COPY plugin plugin
|
|
||||||
COPY version version
|
|
||||||
COPY scaling scaling
|
|
||||||
COPY pkg pkg
|
|
||||||
COPY main.go .
|
|
||||||
|
|
||||||
# Run a gofmt and exclude all vendored code.
|
# Run a gofmt and exclude all vendored code.
|
||||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
RUN test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))"
|
||||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover
|
||||||
&& CGO_ENABLED=${CGO_ENABLED} go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \
|
RUN GIT_COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>&1 | head -n 1) \
|
||||||
&& GOARM=${GOARM} CGO_ENABLED=${CGO_ENABLED} GOOS=linux go build --ldflags "-s -w \
|
GIT_COMMIT_SHA=$(git rev-list -1 HEAD) \
|
||||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\
|
VERSION=$(git describe --all --exact-match `git rev-parse HEAD` | grep tags | sed 's/tags\///' || echo dev) \
|
||||||
-X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\
|
CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build --ldflags "-s -w \
|
||||||
-X \"github.com/openfaas/faas/gateway/version.Version=${VERSION}\" \
|
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA} \
|
||||||
-X github.com/openfaas/faas/gateway/types.Arch=${ARCH}"\
|
-X github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE} \
|
||||||
|
-X github.com/openfaas/faas/gateway/version.Version=${VERSION} \
|
||||||
|
-X github.com/openfaas/faas/gateway/types.Arch=${TARGETARCH}" \
|
||||||
-a -installsuffix cgo -o gateway .
|
-a -installsuffix cgo -o gateway .
|
||||||
|
|
||||||
FROM alpine:3.11
|
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 as ship
|
||||||
|
|
||||||
ARG ARCH="x86_64"
|
|
||||||
|
|
||||||
LABEL org.label-schema.license="MIT" \
|
LABEL org.label-schema.license="MIT" \
|
||||||
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
||||||
@ -65,8 +70,8 @@ ENV http_proxy ""
|
|||||||
ENV https_proxy ""
|
ENV https_proxy ""
|
||||||
|
|
||||||
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
||||||
COPY assets assets
|
COPY gateway/assets assets
|
||||||
RUN sed -ie s/x86_64/${ARCH}/g assets/script/funcstore.js && \
|
RUN sed -ie s/x86_64/${GOARCH}/g assets/script/funcstore.js && \
|
||||||
rm assets/script/funcstore.jse
|
rm assets/script/funcstore.jse
|
||||||
|
|
||||||
RUN chown -R app:app ./
|
RUN chown -R app:app ./
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
FROM teamserverless/license-check:0.3.6 as license-check
|
|
||||||
|
|
||||||
FROM golang:1.13 as build
|
|
||||||
|
|
||||||
ENV GO111MODULE=off
|
|
||||||
ENV CGO_ENABLED=0
|
|
||||||
|
|
||||||
ARG GIT_COMMIT_SHA
|
|
||||||
ARG GIT_COMMIT_MESSAGE
|
|
||||||
ARG VERSION='dev'
|
|
||||||
|
|
||||||
COPY --from=license-check /license-check /usr/bin/
|
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
|
||||||
|
|
||||||
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 version version
|
|
||||||
COPY scaling scaling
|
|
||||||
COPY pkg pkg
|
|
||||||
COPY main.go .
|
|
||||||
|
|
||||||
# Run a gofmt and exclude all vendored code.
|
|
||||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Project" "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
|
||||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
|
||||||
&& go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \
|
|
||||||
&& CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w \
|
|
||||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\
|
|
||||||
-X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\
|
|
||||||
-X github.com/openfaas/faas/gateway/version.Version=${VERSION}" \
|
|
||||||
-a -installsuffix cgo -o gateway .
|
|
||||||
|
|
||||||
FROM alpine:3.11
|
|
||||||
|
|
||||||
LABEL org.label-schema.license="MIT" \
|
|
||||||
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
|
||||||
org.label-schema.vcs-type="Git" \
|
|
||||||
org.label-schema.name="openfaas/faas" \
|
|
||||||
org.label-schema.vendor="openfaas" \
|
|
||||||
org.label-schema.docker.schema-version="1.0"
|
|
||||||
|
|
||||||
RUN addgroup -S app \
|
|
||||||
&& adduser -S -g app app \
|
|
||||||
&& apk add --no-cache ca-certificates
|
|
||||||
|
|
||||||
WORKDIR /home/app
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
EXPOSE 8082
|
|
||||||
ENV http_proxy ""
|
|
||||||
ENV https_proxy ""
|
|
||||||
|
|
||||||
|
|
||||||
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
|
||||||
COPY assets assets
|
|
||||||
|
|
||||||
RUN chown -R app:app ./
|
|
||||||
|
|
||||||
USER app
|
|
||||||
|
|
||||||
RUN sed -ie s/x86_64/arm64/g /home/app/assets/script/funcstore.js
|
|
||||||
|
|
||||||
CMD ["./gateway"]
|
|
@ -1,68 +0,0 @@
|
|||||||
FROM teamserverless/license-check:0.3.6 as license-check
|
|
||||||
|
|
||||||
FROM golang:1.13 as build
|
|
||||||
|
|
||||||
ENV GO111MODULE=off
|
|
||||||
ENV CGO_ENABLED=0
|
|
||||||
|
|
||||||
ARG GIT_COMMIT_SHA
|
|
||||||
ARG GIT_COMMIT_MESSAGE
|
|
||||||
ARG VERSION='dev'
|
|
||||||
|
|
||||||
COPY --from=license-check /license-check /usr/bin/
|
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
|
||||||
|
|
||||||
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 version version
|
|
||||||
COPY scaling scaling
|
|
||||||
COPY pkg pkg
|
|
||||||
COPY main.go .
|
|
||||||
|
|
||||||
# Run a gofmt and exclude all vendored code.
|
|
||||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Project" "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
|
||||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
|
||||||
&& go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \
|
|
||||||
&& GOARM=7 CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w \
|
|
||||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\
|
|
||||||
-X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\
|
|
||||||
-X github.com/openfaas/faas/gateway/version.Version=${VERSION}" \
|
|
||||||
-a -installsuffix cgo -o gateway .
|
|
||||||
|
|
||||||
FROM alpine:3.11
|
|
||||||
|
|
||||||
LABEL org.label-schema.license="MIT" \
|
|
||||||
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
|
||||||
org.label-schema.vcs-type="Git" \
|
|
||||||
org.label-schema.name="openfaas/faas" \
|
|
||||||
org.label-schema.vendor="openfaas" \
|
|
||||||
org.label-schema.docker.schema-version="1.0"
|
|
||||||
|
|
||||||
RUN addgroup -S app \
|
|
||||||
&& adduser -S -g app app \
|
|
||||||
&& apk add --no-cache ca-certificates
|
|
||||||
|
|
||||||
WORKDIR /home/app
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
EXPOSE 8082
|
|
||||||
ENV http_proxy ""
|
|
||||||
ENV https_proxy ""
|
|
||||||
|
|
||||||
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
|
||||||
|
|
||||||
COPY assets assets
|
|
||||||
RUN sed -ie s/x86_64/armhf/g /home/app/assets/script/funcstore.js
|
|
||||||
RUN chown -R app:app ./
|
|
||||||
USER app
|
|
||||||
|
|
||||||
CMD ["./gateway"]
|
|
@ -1,50 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
export dockerfile="Dockerfile"
|
|
||||||
export arch=$(uname -m)
|
|
||||||
|
|
||||||
export eTAG="latest-dev"
|
|
||||||
export GOARM=""
|
|
||||||
|
|
||||||
if [ "$arch" = "armv7l" ] ; then
|
|
||||||
dockerfile="Dockerfile"
|
|
||||||
eTAG="latest-armhf-dev"
|
|
||||||
arch="armhf"
|
|
||||||
GOARM="7"
|
|
||||||
elif [ "$arch" = "aarch64" ] ; then
|
|
||||||
arch="arm64"
|
|
||||||
dockerfile="Dockerfile"
|
|
||||||
eTAG="latest-arm64-dev"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# $arch has been mutated by this point, so check for the updated values
|
|
||||||
echo "$1"
|
|
||||||
if [ "$1" ] ; then
|
|
||||||
eTAG=$1
|
|
||||||
if [ "$arch" = "armhf" ] ; then
|
|
||||||
eTAG="$1-armhf"
|
|
||||||
elif [ "$arch" = "arm64" ] ; then
|
|
||||||
eTAG="$1-arm64"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$2" ] ; then
|
|
||||||
NS=$2
|
|
||||||
else
|
|
||||||
NS=openfaas
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
echo "Building $NS/gateway:$eTAG with $dockerfile for $arch"
|
|
||||||
|
|
||||||
GIT_COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>&1 | head -n 1)
|
|
||||||
GIT_COMMIT_SHA=$(git rev-list -1 HEAD)
|
|
||||||
VERSION=$(git describe --all --exact-match `git rev-parse HEAD` | grep tags | sed 's/tags\///' || echo dev)
|
|
||||||
|
|
||||||
docker build --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy \
|
|
||||||
--build-arg GIT_COMMIT_MESSAGE="${GIT_COMMIT_MESSAGE}" --build-arg GIT_COMMIT_SHA="${GIT_COMMIT_SHA}" \
|
|
||||||
--build-arg VERSION="${VERSION:-dev}" \
|
|
||||||
--build-arg GOARM="${GOARM}" \
|
|
||||||
--build-arg ARCH="${arch}" \
|
|
||||||
-t $NS/gateway:$eTAG . -f $dockerfile
|
|
Loading…
x
Reference in New Issue
Block a user