Skip to content

Commit e60e9af

Browse files
committed
runtime and alpine version fixes with drive by improvements
1 parent 5b70d7f commit e60e9af

File tree

14 files changed

+139
-88
lines changed

14 files changed

+139
-88
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ start: tinyfaas-${OS}-${ARCH}
2020
./$<
2121

2222
.PHONY: test
23-
test: build ${TEST_DIR}/test_all.py
23+
test: build ${TEST_DIR}/test_all.py pkg/grpc/tinyfaas/tinyfaas_pb2.py pkg/grpc/tinyfaas/tinyfaas_pb2.pyi pkg/grpc/tinyfaas/tinyfaas_pb2_grpc.py
2424
@python3 ${TEST_DIR}/test_all.py
2525

2626
.PHONY: clean

go.mod

+14-14
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@ module github.com/OpenFogStack/tinyFaaS
33
go 1.22
44

55
require (
6-
github.com/docker/docker v26.1.2+incompatible
6+
github.com/docker/docker v27.0.0+incompatible
77
github.com/google/uuid v1.6.0
88
github.com/pfandzelter/go-coap v0.1.0
99
google.golang.org/grpc v1.64.0
10-
google.golang.org/protobuf v1.34.1
10+
google.golang.org/protobuf v1.34.2
1111
)
1212

1313
require (
1414
github.com/Microsoft/go-winio v0.6.2 // indirect
15-
github.com/containerd/containerd v1.7.16 // indirect
15+
github.com/containerd/containerd v1.7.18 // indirect
1616
github.com/containerd/log v0.1.0 // indirect
1717
github.com/distribution/reference v0.6.0 // indirect
1818
github.com/docker/go-connections v0.5.0 // indirect
1919
github.com/docker/go-units v0.5.0 // indirect
2020
github.com/felixge/httpsnoop v1.0.4 // indirect
21-
github.com/go-logr/logr v1.4.1 // indirect
21+
github.com/go-logr/logr v1.4.2 // indirect
2222
github.com/go-logr/stdr v1.2.2 // indirect
2323
github.com/gogo/protobuf v1.3.2 // indirect
24-
github.com/klauspost/compress v1.17.8 // indirect
24+
github.com/klauspost/compress v1.17.9 // indirect
2525
github.com/moby/docker-image-spec v1.3.1 // indirect
2626
github.com/moby/patternmatcher v0.6.0 // indirect
2727
github.com/moby/sys/sequential v0.5.0 // indirect
@@ -32,15 +32,15 @@ require (
3232
github.com/opencontainers/image-spec v1.1.0 // indirect
3333
github.com/pkg/errors v0.9.1 // indirect
3434
github.com/sirupsen/logrus v1.9.3 // indirect
35-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 // indirect
36-
go.opentelemetry.io/otel v1.26.0 // indirect
37-
go.opentelemetry.io/otel/metric v1.26.0 // indirect
38-
go.opentelemetry.io/otel/trace v1.26.0 // indirect
39-
golang.org/x/net v0.25.0 // indirect
40-
golang.org/x/sys v0.20.0 // indirect
41-
golang.org/x/text v0.15.0 // indirect
35+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect
36+
go.opentelemetry.io/otel v1.27.0 // indirect
37+
go.opentelemetry.io/otel/metric v1.27.0 // indirect
38+
go.opentelemetry.io/otel/trace v1.27.0 // indirect
39+
golang.org/x/net v0.26.0 // indirect
40+
golang.org/x/sys v0.21.0 // indirect
41+
golang.org/x/text v0.16.0 // indirect
4242
golang.org/x/time v0.5.0 // indirect
43-
google.golang.org/genproto/googleapis/api v0.0.0-20240509183442-62759503f434 // indirect
44-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 // indirect
43+
google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 // indirect
44+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect
4545
gotest.tools/v3 v3.5.1 // indirect
4646
)

go.sum

+30-30
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,30 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOEl
44
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
55
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
66
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
7-
github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8=
8-
github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w=
7+
github.com/Microsoft/hcsshim v0.11.5 h1:haEcLNpj9Ka1gd3B3tAEs9CpE0c+1IhoL59w/exYU38=
8+
github.com/Microsoft/hcsshim v0.11.5/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU=
99
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
1010
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
11-
github.com/containerd/containerd v1.7.16 h1:7Zsfe8Fkj4Wi2My6DXGQ87hiqIrmOXolm72ZEkFU5Mg=
12-
github.com/containerd/containerd v1.7.16/go.mod h1:NL49g7A/Fui7ccmxV6zkBWwqMgmMxFWzujYCc+JLt7k=
11+
github.com/containerd/containerd v1.7.18 h1:jqjZTQNfXGoEaZdW1WwPU0RqSn1Bm2Ay/KJPUuO8nao=
12+
github.com/containerd/containerd v1.7.18/go.mod h1:IYEk9/IO6wAPUz2bCMVUbsfXjzw5UNP5fLz4PsUygQ4=
1313
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
1414
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
1515
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1616
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1717
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1818
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
1919
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
20-
github.com/docker/docker v26.1.2+incompatible h1:UVX5ZOrrfTGZZYEP+ZDq3Xn9PdHNXaSYMFPDumMqG2k=
21-
github.com/docker/docker v26.1.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
20+
github.com/docker/docker v27.0.0+incompatible h1:JRugTYuelmWlW0M3jakcIadDx2HUoUO6+Tf2C5jVfwA=
21+
github.com/docker/docker v27.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
2222
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
2323
github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
2424
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
2525
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
2626
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
2727
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
2828
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
29-
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
30-
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
29+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
30+
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
3131
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
3232
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
3333
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
@@ -40,8 +40,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rH
4040
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
4141
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
4242
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
43-
github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
44-
github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
43+
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
44+
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
4545
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
4646
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
4747
github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
@@ -72,20 +72,20 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
7272
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
7373
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
7474
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
75-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 h1:Xs2Ncz0gNihqu9iosIZ5SkBbWo5T8JhhLJFMQL1qmLI=
76-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0/go.mod h1:vy+2G/6NvVMpwGX/NyLqcC41fxepnuKHk16E6IZUcJc=
77-
go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs=
78-
go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4=
75+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A=
76+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0=
77+
go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg=
78+
go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ=
7979
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U=
8080
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE=
8181
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg=
8282
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU=
83-
go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30=
84-
go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4=
83+
go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik=
84+
go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak=
8585
go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
8686
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
87-
go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA=
88-
go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0=
87+
go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw=
88+
go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4=
8989
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
9090
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
9191
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -97,21 +97,21 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
9797
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
9898
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
9999
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
100-
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
101-
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
100+
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
101+
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
102102
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
103103
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
104104
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
105105
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
106106
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
107107
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
108108
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
109-
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
110-
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
109+
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
110+
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
111111
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
112112
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
113-
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
114-
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
113+
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
114+
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
115115
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
116116
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
117117
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -122,14 +122,14 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
122122
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
123123
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
124124
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
125-
google.golang.org/genproto/googleapis/api v0.0.0-20240509183442-62759503f434 h1:OpXbo8JnN8+jZGPrL4SSfaDjSCjupr8lXyBAbexEm/U=
126-
google.golang.org/genproto/googleapis/api v0.0.0-20240509183442-62759503f434/go.mod h1:FfiGhwUm6CJviekPrc0oJ+7h29e+DmWU6UtjX0ZvI7Y=
127-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 h1:mxSlqyb8ZAHsYDCfiXN1EDdNTdvjUJSLY+OnAUtYNYA=
128-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM=
125+
google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 h1:MuYw1wJzT+ZkybKfaOXKp5hJiZDn2iHaXRw0mRYdHSc=
126+
google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4/go.mod h1:px9SlOOZBg1wM1zdnr8jEL4CNGUBZ+ZKYtNPApNQc4c=
127+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0=
128+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
129129
google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY=
130130
google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg=
131-
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
132-
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
131+
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
132+
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
133133
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
134134
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
135135
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

pkg/docker/handler.go

+76-35
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import (
1515

1616
"github.com/docker/docker/api/types"
1717
"github.com/docker/docker/api/types/container"
18+
"github.com/docker/docker/api/types/image"
19+
"github.com/docker/docker/api/types/network"
1820
"github.com/docker/docker/client"
1921
"github.com/docker/docker/pkg/archive"
2022
"github.com/docker/docker/pkg/stdcopy"
@@ -140,6 +142,7 @@ func (db *DockerBackend) Create(name string, env string, threads int, filedir st
140142
return nil, err
141143
}
142144

145+
defer r.Body.Close()
143146
scanner := bufio.NewScanner(r.Body)
144147
for scanner.Scan() {
145148
log.Println(scanner.Text())
@@ -152,8 +155,7 @@ func (db *DockerBackend) Create(name string, env string, threads int, filedir st
152155
network, err := db.client.NetworkCreate(
153156
context.Background(),
154157
dh.uniqueName,
155-
types.NetworkCreate{
156-
CheckDuplicate: true,
158+
network.CreateOptions{
157159
Labels: map[string]string{
158160
"tinyfaas-function": dh.name,
159161
"tinyFaaS": db.tinyFaaSID,
@@ -265,12 +267,26 @@ func (dh *dockerHandler) Start() error {
265267

266268
// wait for the containers to be ready
267269
// curl http://<container>:8000/ready
268-
for _, ip := range dh.handlerIPs {
270+
for i, ip := range dh.handlerIPs {
269271
log.Println("waiting for container", ip, "to be ready")
270272
maxRetries := 10
271273
for {
272274
maxRetries--
273275
if maxRetries == 0 {
276+
// container did not start properly!
277+
// give people some logs to look at
278+
log.Printf("container %s (ip %s) not ready after 10 retries", dh.containers[i], ip)
279+
log.Printf("getting logs for container %s", dh.containers[i])
280+
logs, err := dh.getContainerLogs(dh.containers[i])
281+
282+
if err != nil {
283+
return fmt.Errorf("container %s not ready after 10 retries, error encountered when getting logs %s", ip, err)
284+
}
285+
286+
log.Println(logs)
287+
288+
log.Printf("end of logs for container %s", dh.containers[i])
289+
274290
return fmt.Errorf("container %s not ready after 10 retries", ip)
275291
}
276292

@@ -359,7 +375,7 @@ func (dh *dockerHandler) Destroy() error {
359375
_, err = dh.client.ImageRemove(
360376
context.Background(),
361377
dh.uniqueName,
362-
types.ImageRemoveOptions{},
378+
image.RemoveOptions{},
363379
)
364380

365381
if err != nil {
@@ -371,46 +387,71 @@ func (dh *dockerHandler) Destroy() error {
371387
return nil
372388
}
373389

374-
func (dh *dockerHandler) Logs() (io.Reader, error) {
375-
// get container logs
376-
// docker logs <container>
377-
var logs bytes.Buffer
378-
for _, c := range dh.containers {
379-
l, err := dh.client.ContainerLogs(
380-
context.Background(),
381-
c,
382-
container.LogsOptions{
383-
ShowStdout: true,
384-
ShowStderr: true,
385-
Timestamps: true,
386-
},
387-
)
388-
if err != nil {
389-
return nil, err
390-
}
390+
func (dh *dockerHandler) getContainerLogs(c string) (string, error) {
391+
logs := ""
391392

392-
var lstdout bytes.Buffer
393-
var lstderr bytes.Buffer
393+
l, err := dh.client.ContainerLogs(
394+
context.Background(),
395+
c,
396+
container.LogsOptions{
397+
ShowStdout: true,
398+
ShowStderr: true,
399+
Timestamps: true,
400+
},
401+
)
402+
if err != nil {
403+
return logs, err
404+
}
394405

395-
_, err = stdcopy.StdCopy(&lstdout, &lstderr, l)
406+
var lstdout bytes.Buffer
407+
var lstderr bytes.Buffer
396408

397-
l.Close()
409+
_, err = stdcopy.StdCopy(&lstdout, &lstderr, l)
398410

399-
if err != nil {
400-
return nil, err
401-
}
411+
l.Close()
402412

403-
// add a prefix to each line
404-
// function=<function> handler=<handler> <line>
405-
scanner := bufio.NewScanner(&lstdout)
413+
if err != nil {
414+
return logs, err
415+
}
406416

407-
for scanner.Scan() {
408-
logs.WriteString(fmt.Sprintf("function=%s handler=%s %s\n", dh.name, c, scanner.Text()))
409-
}
417+
// add a prefix to each line
418+
// function=<function> handler=<handler> <line>
419+
scanner := bufio.NewScanner(&lstdout)
420+
421+
for scanner.Scan() {
422+
logs += fmt.Sprintf("function=%s handler=%s %s\n", dh.name, c, scanner.Text())
423+
}
424+
425+
if err := scanner.Err(); err != nil {
426+
return logs, err
427+
}
428+
429+
// same for stderr
430+
scanner = bufio.NewScanner(&lstderr)
431+
432+
for scanner.Scan() {
433+
logs += fmt.Sprintf("function=%s handler=%s %s\n", dh.name, c, scanner.Text())
434+
}
410435

411-
if err := scanner.Err(); err != nil {
436+
if err := scanner.Err(); err != nil {
437+
return logs, err
438+
}
439+
440+
return logs, nil
441+
}
442+
443+
func (dh *dockerHandler) Logs() (io.Reader, error) {
444+
// get container logs
445+
// docker logs <container>
446+
var logs bytes.Buffer
447+
448+
for _, c := range dh.containers {
449+
l, err := dh.getContainerLogs(c)
450+
if err != nil {
412451
return nil, err
413452
}
453+
454+
logs.WriteString(l)
414455
}
415456

416457
return &logs, nil
-624 Bytes
Binary file not shown.
-34.1 KB
Binary file not shown.
9.79 KB
Binary file not shown.

pkg/docker/runtimes/binary/build.Dockerfile

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
FROM golang:1.22-alpine AS builder
1+
ARG GO_VERSION=1.22
2+
ARG ALPINE_VERSION=3.19
3+
4+
FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS builder
25

36
WORKDIR /usr/src/build
47
COPY functionhandler.go .
58
RUN GO111MODULE=off CGO_ENABLED=0 go build -o handler.bin .
69

7-
FROM alpine:3.19
10+
FROM alpine:${ALPINE_VERSION}
811

912
# Create app directory
1013
WORKDIR /usr/src/app

pkg/docker/runtimes/nodejs/build.Dockerfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
2-
FROM node:20-alpine
2+
ARG NODE_VERSION=20.14
3+
ARG ALPINE_VERSION=3.19
4+
5+
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION}
36

47
# Create app directory
58
WORKDIR /usr/src/app

pkg/docker/runtimes/python3/build.Dockerfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
FROM python:3.11-alpine
1+
ARG PYTHON_VERSION=3.11
2+
ARG ALPINE_VERSION=3.19
3+
4+
FROM python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
25

36
# Create app directory
47
WORKDIR /usr/src/app

0 commit comments

Comments
 (0)