Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds Optional SQLite Docker #141

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
}
};