Skip to content

Commit

Permalink
deployment: optional support for sqlite
Browse files Browse the repository at this point in the history
adds optional dockerfile and docker-compose with sqlite
support/config. adds make target for alternate build.

addresses sourcegraph#140
  • Loading branch information
Kevin Ard committed Oct 9, 2020
1 parent 77e7567 commit 3cd90aa
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.github
builds
checks
checkup.json
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@ test-%:

docker:
docker build --no-cache . -t $(DOCKER_IMAGE)

docker_sqlite:
docker build --no-cache -t $(DOCKER_IMAGE):sqlite3 -f sqlite3.Dockerfile .
28 changes: 28 additions & 0 deletions docker-compose.sqlite3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
version: "2.4"

services:
#-- worker node
worker:
image: checkup:sqlite3
volumes:
- ./checkup.json:/app/checkup.json
- ./checks:/app/checks
entrypoint:
- checkup
- every
- 10s
user: "1000:1000"
restart: always

#-- client
checkup:
hostname: checkup
image: checkup:sqlite3
ports:
- 3000:3000
volumes:
- ./checkup.json:/app/checkup.json
- ./checks:/app/checks
- ./statuspage/js/config_sqlite3.js:/app/statuspage/js/config.js
user: "1000:1000"
restart: always
33 changes: 33 additions & 0 deletions sqlite3.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#---------------------------- Build
FROM golang:1.14-alpine as builder

COPY . /app
WORKDIR /app
RUN apk add --no-cache make gcc musl-dev && \
rm -rf /var/cache/apk/* && \
make build-sqlite3

#---------------------------- Deploy
FROM alpine:3.4

RUN apk --update upgrade && \
apk add --no-cache sqlite ca-certificates && \
rm -f /usr/bin/sqlite3 && \
rm -rf /var/cache/apk/*

RUN mkdir /lib64 && \
ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

WORKDIR /app

COPY --from=builder /app/builds/checkup /usr/local/bin/checkup
ADD statuspage/ /app/statuspage

RUN addgroup -g 1000 app
RUN adduser -g "" -G app -D -H -u 1000 app

USER app

EXPOSE 3000
ENTRYPOINT ["checkup"]
CMD ["serve"]
28 changes: 28 additions & 0 deletions statuspage/js/config_sqlite3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
checkup.config = {
// How much history to show on the status page. Long durations and
// frequent checks make for slow loading, so be conservative.
// This value is in NANOSECONDS to mirror Go's time package.
"timeframe": 1 * time.Day,

// How often, in seconds, to pull new checks and update the page.
"refresh_interval": 60,

// Configure read-only access to stored checks. This configuration
// depends on your storage provider. Any credentials and other values
// here will be visible to everyone, so use keys with ONLY read access!
"storage": {
// Storage type (fs for local, s3 for AWS S3)
"type": "sqlite3",
// Local checkup server by default, set to github page if
// you're hosting your status page on GitHub.
// e.g. "https://sourcegraph.github.io/checkup/checks/"
"url": "/"
},

// The text to display along the top bar depending on overall status.
"status_text": {
"healthy": "Situation Normal",
"degraded": "Degraded Service",
"down": "Service Disruption"
}
};

0 comments on commit 3cd90aa

Please sign in to comment.