tangled
alpha
login
or
join now
tangled.org
/
knot-docker
90
fork
atom
Community maintained Docker config for the knot server
90
fork
atom
overview
issues
3
pulls
1
pipelines
upgrade to v1.8.0, add publish workflow
knotbin.com
6 months ago
0c6afbfa
aa289339
+44
-3
2 changed files
expand all
collapse all
unified
split
.tangled
workflows
publish.yml
Dockerfile
+42
.tangled/workflows/publish.yml
···
1
1
+
when:
2
2
+
- event: ["push"]
3
3
+
branch: ["main"]
4
4
+
- event: ["manual"]
5
5
+
6
6
+
dependencies:
7
7
+
nixpkgs:
8
8
+
- docker
9
9
+
- coreutils
10
10
+
- gnused
11
11
+
12
12
+
steps:
13
13
+
- name: "Extract version from Dockerfile"
14
14
+
command: |
15
15
+
export TAG=$(grep -E '^arg TAG=' Dockerfile | sed -E "s/arg TAG='?([^']+)'?/\1/i")
16
16
+
echo "Detected TAG=$TAG"
17
17
+
echo "TAG=$TAG" >> $TANGLED_ENV_FILE # make TAG available to later steps
18
18
+
19
19
+
- name: "Log in to Docker Hub"
20
20
+
command: |
21
21
+
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
22
22
+
23
23
+
- name: "Build Docker image"
24
24
+
command: |
25
25
+
docker build --build-arg TAG="$TAG" -t "$DOCKER_USERNAME/$DOCKER_REPO:$TAG" .
26
26
+
docker tag "$DOCKER_USERNAME/$DOCKER_REPO:$TAG" "$DOCKER_USERNAME/$DOCKER_REPO:latest"
27
27
+
28
28
+
- name: "Push Docker image"
29
29
+
command: |
30
30
+
docker push "$DOCKER_USERNAME/$DOCKER_REPO:$TAG"
31
31
+
docker push "$DOCKER_USERNAME/$DOCKER_REPO:latest"
32
32
+
33
33
+
environment:
34
34
+
GIT_COMMIT: "${CI_COMMIT_SHA}"
35
35
+
DOCKER_USERNAME: "your-dockerhub-username"
36
36
+
DOCKER_PASSWORD: "${DOCKER_PASSWORD}"
37
37
+
DOCKER_REPO: "knot"
38
38
+
39
39
+
clone:
40
40
+
skip: false
41
41
+
depth: 50
42
42
+
submodules: true
+2
-3
Dockerfile
···
2
2
env KNOT_REPO_SCAN_PATH=/home/git/repositories
3
3
env CGO_ENABLED=1
4
4
5
5
-
arg TAG='v1.6.0-alpha'
5
5
+
arg TAG='v1.8.0-alpha'
6
6
7
7
workdir /app
8
8
run apk add git gcc musl-dev
···
30
30
run mkdir /app && chown -R git:git /app
31
31
32
32
healthcheck --interval=60s --timeout=30s --start-period=5s --retries=3 \
33
33
-
cmd curl -f http://localhost:5555 || exit 1
33
33
+
cmd curl -f http://localhost:5555 || exit 1
34
34
35
35
entrypoint ["/init"]
36
36
-