blob: 690c0ab9aa841b54f8c7c943f1f7378b8ec2f16c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
LANGUAGETOOL_VERSION := 6.2
BUILDARG_VERSION := --build-arg VERSION=$(LANGUAGETOOL_VERSION)
IMAGENAME := docker.io/chn2guevara/languagetool
BUILDARG_PLATFORM := --platform linux/amd64,linux/arm64/v8
DOCKER_EXTRA_ARGS :=
ci-deps:
apt-get -qq -y install \
binfmt-support \
ca-certificates \
curl \
git \
gnupg \
lsb-release \
qemu-user-static \
wget \
jq
ci-deps-docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$(shell dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(shell lsb_release -cs) stable" |\
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
cat /etc/apt/sources.list.d/docker.list && \
apt-get update && \
apt-get -qq -y install \
docker-ce \
docker-ce-cli \
containerd.io
ci-setup-buildx:
docker run --privileged --rm tonistiigi/binfmt --install all
-docker buildx create --name mybuilder
docker buildx use mybuilder
ci-prepare: ci-deps ci-deps-docker ci-setup-buildx
build: ci-prepare
docker buildx build $(BUILDARG_VERSION) $(BUILDARG_PLATFORM) -t $(IMAGENAME):latest .
docker buildx build $(BUILDARG_VERSION) --load -t $(IMAGENAME):latest .
push: ci-prepare
docker buildx build $(BUILDARG_VERSION) $(BUILDARG_PLATFORM) -t $(IMAGENAME):latest . --push
docker buildx build $(BUILDARG_VERSION) $(BUILDARG_PLATFORM) -t $(IMAGENAME):$(LANGUAGETOOL_VERSION) . --push
test: build test-int
test-int-start:
docker kill languagetool || true
docker rm languagetool || true
docker run --rm -d --name languagetool -p 8010:8010 $(IMAGENAME):latest
test-int-run: IP=$(subst ",,$(shell docker inspect languagetool | jq '.[0].NetworkSettings.IPAddress'))
test-int-run:
timeout 60 sh -c 'until (curl -i $(IP):8010/v2/info | grep "200 OK") do sleep 1; done'
curl \
-X GET \
--header 'Accept: application/json' \
--fail \
'http://$(IP):8010/v2/languages'
curl \
-X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--fail \
-d 'text=hello%20woorld&language=en-US&motherTongue=de-DE&enabledOnly=false' \
'http://$(IP):8010/v2/check'
test-int: test-int-start test-int-run
docker-%:
docker run \
--rm \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(shell pwd):/data \
-w /data $(DOCKER_EXTRA_ARGS) \
debian:stable sh -c "apt-get update && apt-get install make && make $*"
|