-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContainerfile-alpine
More file actions
107 lines (87 loc) · 4.04 KB
/
Copy pathContainerfile-alpine
File metadata and controls
107 lines (87 loc) · 4.04 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
ARG TERRAFORM_VERSION=v1.9
FROM quay.io/cloudnativetoolkit/terraform:${TERRAFORM_VERSION}-v4.0.2-alpine
ARG TARGETPLATFORM
ARG BASE_OS=alpine
ARG OPENSHIFT_CLI_VERSION=4.17
ARG KUBESEAL_VERSION=0.28.0
ARG ARGOCD_VERSION=2.14.4
ARG KUSTOMIZE_VERSION=5.6.0
ARG TKN_VERSION=1.17.1
ENV TF_CLI_ARGS_apply="-parallelism=6"
ENV TF_LOG_PROVIDER_gitops=DEBUG
ENV TF_LOG_PROVIDER_clis=DEBUG
USER root
RUN apk add --no-cache --force-broken-world \
ca-certificates \
perl \
openvpn \
apache2-utils \
github-cli \
&& rm -rf /var/cache/apk/*
RUN mkdir tmp && \
cd tmp && \
curl -L https://mirror.openshift.com/pub/openshift-v4/$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/clients/ocp/stable-${OPENSHIFT_CLI_VERSION}/openshift-client-linux.tar.gz --output oc-client.tar.gz && \
tar xzf oc-client.tar.gz && \
mv ./oc /usr/local/bin && \
cd .. && \
rm -rf tmp
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/kubectl" && \
chmod +x ./kubectl && \
mv ./kubectl /usr/local/bin && \
kubectl version --client
RUN curl -sL -o ./yq3 $(curl -sL https://api.github.com/repos/mikefarah/yq/releases/tags/3.4.1 | jq -r --arg NAME "yq_linux_$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)" '.assets[] | select(.name == $NAME) | .browser_download_url') && \
chmod +x ./yq3 && \
mv ./yq3 /usr/bin/yq3 && \
yq3 --version
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash && helm version
## kubeseal
RUN mkdir tmp && \
cd tmp && \
curl -sLo kubeseal.tar.gz https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf kubeseal.tar.gz && \
chmod +x kubeseal && \
mv kubeseal /usr/local/bin && \
cd .. && \
rm -rf tmp && \
kubeseal --version
## argocd
RUN curl -sLo argocd https://github.com/argoproj/argo-cd/releases/download/v${ARGOCD_VERSION}/argocd-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \
chmod +x argocd && \
mv argocd /usr/local/bin && \
argocd version --client
## kustomize
RUN mkdir tmp && \
cd tmp && \
curl -sLo kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf kustomize.tar.gz && \
mv kustomize /usr/local/bin && \
cd .. && \
rm -rf tmp && \
kustomize version
## tkn
RUN mkdir tmp && \
cd tmp && \
curl -sLo tkn.tar.gz https://mirror.openshift.com/pub/openshift-v4/clients/pipelines/${TKN_VERSION}/tkn-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf tkn.tar.gz && \
mv tkn /usr/local/bin && \
cd .. && \
rm -rf tmp && \
tkn version
ARG IGC_VERSION=1.42.3
## igc
RUN echo "Base OS: ${BASE_OS}" && curl -sL -o ./igc https://github.com/cloud-native-toolkit/ibm-garage-cloud-cli/releases/download/v${IGC_VERSION}/igc-${BASE_OS}-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
chmod +x igc && \
mv igc /usr/local/bin && \
igc plugins --path /usr/local/bin && \
igc --version
ARG GITU_VERSION=1.14.7
## gitu
RUN curl -sL -o ./gitu https://github.com/cloud-native-toolkit/git-client/releases/download/v${GITU_VERSION}/gitu-${BASE_OS}-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
chmod +x gitu && \
mv gitu /usr/local/bin && \
gitu --version
USER devops
COPY src/bin/* /usr/local/bin/
COPY --chown=devops:root src/home/ ${HOME}/
VOLUME /workspaces
ENTRYPOINT ["/bin/bash", "-c", "./image-message && /bin/bash"]