-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathDockerfile.local
65 lines (55 loc) · 3.15 KB
/
Dockerfile.local
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
#
# Copyright (c) 2016 TFG Co <[email protected]>
# Author: TFG Co <[email protected]>
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
FROM golang:1.21
ENV LIBRARY_PATH /usr/local/lib
ENV LD_LIBRARY_PATH /usr/local/lib
RUN apt update \
&& apt install -y wget \
&& wget -qO - https://packages.confluent.io/deb/7.5/archive.key | apt-key add - \
&& apt update \
&& apt install -y librdkafka-dev
# psql to test db connection
RUN apt install -y postgresql
# kafka bin to test kafka connection, available at /opt/kafka/bin/<script_name>
RUN wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc \
&& echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list \
&& apt update \
&& apt install -y temurin-8-jdk
ENV KAFKA_DEV_VERSION 3.6.0
ENV KAFKA_SCRIPTS_VERSION 2.13-${KAFKA_DEV_VERSION}
RUN wget --no-check-certificate -O /opt/kafka_${KAFKA_SCRIPTS_VERSION}.tgz https://dlcdn.apache.org/kafka/${KAFKA_DEV_VERSION}/kafka_${KAFKA_SCRIPTS_VERSION}.tgz \
&& tar -xzf /opt/kafka_${KAFKA_SCRIPTS_VERSION}.tgz -C /opt \
&& mv /opt/kafka_${KAFKA_SCRIPTS_VERSION} /opt/kafka \
&& rm /opt/kafka_${KAFKA_SCRIPTS_VERSION}.tgz \
&& export PATH=$PATH:/opt/kafka/bin
# golangci-lint
ENV GOLANGCI_LINT_VERSION 1.15.0
RUN wget -O /go/bin/golangci-lint-${GOLANGCI_LINT_VERSION}-linux-amd64.tar.gz https://github.com/golangci/golangci-lint/releases/download/v${GOLANGCI_LINT_VERSION}/golangci-lint-${GOLANGCI_LINT_VERSION}-linux-amd64.tar.gz \
&& tar -xzf /go/bin/golangci-lint-${GOLANGCI_LINT_VERSION}-linux-amd64.tar.gz -C /go/bin \
&& mv /go/bin/golangci-lint-${GOLANGCI_LINT_VERSION}-linux-amd64/golangci-lint /go/bin/ \
&& rm -rf /go/bin/golangci-lint-${GOLANGCI_LINT_VERSION}-linux-amd64 \
&& rm /go/bin/golangci-lint-${GOLANGCI_LINT_VERSION}-linux-amd64.tar.gz
# ginkgo
ENV GINKGO_VERSION 1.16.5
RUN go install github.com/onsi/ginkgo/ginkgo@v${GINKGO_VERSION}
# vim to ease development
RUN apt install -y vim
WORKDIR /go/src/github.com/topfreegames/pusher
CMD bash