Skip to content

Commit c080f7f

Browse files
leason00lisen
and
lisen
authored
Additional integration of provider into the image (#16)
Signed-off-by: lisen <[email protected]> Co-authored-by: lisen <[email protected]>
1 parent 72da266 commit c080f7f

File tree

3 files changed

+29
-9
lines changed

3 files changed

+29
-9
lines changed

Dockerfile

+15-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ RUN \
99
pip install azure-cli && \
1010
apk del --purge build
1111

12+
ARG PROVIDERS
13+
1214
VOLUME ["/data"]
1315

1416
WORKDIR /data
@@ -23,7 +25,17 @@ COPY ossutil /usr/bin
2325

2426
ENV RETRIEVE_TF_PROVIDER=/tmp/retrieve_tf_provider.sh
2527

26-
RUN $RETRIEVE_TF_PROVIDER random 3.1.0
27-
RUN $RETRIEVE_TF_PROVIDER alicloud 1.140.0
28+
# default provider
29+
RUN $RETRIEVE_TF_PROVIDER hashicorp random 3.1.0
30+
RUN $RETRIEVE_TF_PROVIDER hashicorp alicloud 1.140.0
31+
32+
# additional designated provider
33+
RUN if [ "${PROVIDERS}" = "" ] ;then \
34+
echo "There is no additional designated provider"; \
35+
else \
36+
for provider in ${PROVIDERS//,/ }; do \
37+
$RETRIEVE_TF_PROVIDER ${provider//\// }; \
38+
done \
39+
fi
2840

29-
ENTRYPOINT ["tail", "-f", "/dev/null"]
41+
ENTRYPOINT ["tail", "-f", "/dev/null"]

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ $ docker build -t oamdev/docker-terraform:$TAG .
1515
$ docker push oamdev/docker-terraform:$TAG
1616
```
1717

18+
# Additional integration of provider into the image
19+
Specify -build-arg PROVIDERS=$GROUP/$NAME/$VERSION
20+
```shell
21+
$ docker build --build-arg PROVIDERS=tencentcloudstack/tencentcloud/1.72.0,hashicorp/aws/4.13.0 -t oamdev/docker-terraform:$TAG .
22+
```
23+
1824
# oam-dev/docker-terraform
1925

2026
- tag: 1.0.7

retrieve_tf_provider.sh

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
set -x
22
# accept two arguments from command line
3-
# 1. the name of the Terraform provider
4-
# 2. the version of the Terraform provider
3+
# 1. the group of the Terraform provider
4+
# 2. the name of the Terraform provider
5+
# 3. the version of the Terraform provider
56

6-
PROVIDER_NAME=$1
7-
PROVIDER_VERSION=$2
7+
PROVIDER_GROUP=$1
8+
PROVIDER_NAME=$2
9+
PROVIDER_VERSION=$3
810

911
echo "Downloading: $PROVIDER_NAME, $PROVIDER_VERSION"
1012

11-
TERRAFORM_DIR=/root/.terraform.d/plugins/registry.terraform.io/hashicorp
13+
TERRAFORM_DIR=/root/.terraform.d/plugins/registry.terraform.io/$PROVIDER_GROUP
1214
HASHICORP_RELEASE_DOMAIN=https://releases.hashicorp.com
1315

1416
PROVIDER_RUL=$HASHICORP_RELEASE_DOMAIN/terraform-provider-"$PROVIDER_NAME"/"$PROVIDER_VERSION"/terraform-provider-"$PROVIDER_NAME"_"$PROVIDER_VERSION"_linux_amd64.zip
@@ -17,4 +19,4 @@ wget "$PROVIDER_RUL" -O provider.zip &&
1719
chmod +x terraform-provider-"$PROVIDER_NAME"_* &&
1820
mkdir -p $TERRAFORM_DIR/"$PROVIDER_NAME"/"$PROVIDER_VERSION"/linux_amd64 &&
1921
mv terraform-provider-"$PROVIDER_NAME"_* $TERRAFORM_DIR/"$PROVIDER_NAME"/"$PROVIDER_VERSION"/linux_amd64 &&
20-
rm -f provider.zip
22+
rm -f provider.zip

0 commit comments

Comments
 (0)