@@ -2,9 +2,22 @@ FROM oraclelinux:9-slim
22LABEL maintainer="Team at Oracle"
33LABEL description="OCI format to generate CD3 image"
44
5- ARG USERNAME=cd3user
5+
6+ # ########## Input Parameters for image creation ############
7+ # UID of user on underlying OS. eg 503 for Mac
68ARG USER_UID=1001
9+ # Whether to download Jenkins as part of image creation
10+ ARG USE_DEVOPS=YES
11+ # ############################################################
12+
13+
14+ ARG USERNAME=cd3user
715ARG USER_GID=$USER_UID
16+ # Whether to download Provider as part of image creation
17+ ARG DOWNLOAD_PROVIDER=YES
18+ # TF Provider version
19+ ARG TF_OCI_PROVIDER=6.15.0
20+ ARG TF_NULL_PROVIDER=3.2.1
821
922RUN microdnf install -y sudo && \
1023 groupadd --gid $USER_GID $USERNAME && \
@@ -15,6 +28,8 @@ RUN microdnf install -y sudo && \
1528 chown -R $USERNAME:$USERNAME /cd3user/tenancies/ && \
1629 microdnf install -y vim && \
1730 microdnf install -y dnf && \
31+ microdnf install -y wget && \
32+ microdnf install -y unzip && \
1833 microdnf install -y graphviz && \
1934 echo 'alias vi="vim"' >> /etc/bashrc
2035
@@ -29,12 +44,26 @@ RUN sudo dnf install -y oraclelinux-release-el9 && \
2944sudo chown -R $USERNAME:$USERNAME /cd3user/ && \
3045sudo sed -i -e 's/\r $//' /cd3user/oci_tools/cd3_automation_toolkit/shell_script.sh && \
3146bash /cd3user/oci_tools/cd3_automation_toolkit/shell_script.sh && \
32- sudo chown -R cd3user:cd3user /cd3user/ && \
3347sudo dnf clean all && \
3448sudo rm -rf /var/cache/dnf && \
35- sudo chmod -R 740 /cd3user/
49+ sudo chmod -R 740 /cd3user/ && \
50+ sudo chown -R cd3user:cd3user /cd3user/
3651
3752
53+ RUN if [ "$DOWNLOAD_PROVIDER" == "YES" ]; then \
54+ # oci provider
55+ sudo wget https://releases.hashicorp.com/terraform-provider-oci/${TF_OCI_PROVIDER}/terraform-provider-oci_${TF_OCI_PROVIDER}_linux_amd64.zip && \
56+ sudo mkdir -p /cd3user/.terraform.d/plugins/registry.terraform.io/oracle/oci/${TF_OCI_PROVIDER}/linux_amd64 && \
57+ sudo unzip terraform-provider-oci_${TF_OCI_PROVIDER}_linux_amd64.zip -d /cd3user/.terraform.d/plugins/registry.terraform.io/oracle/oci/${TF_OCI_PROVIDER}/linux_amd64 && \
58+ # null provider
59+ sudo wget https://releases.hashicorp.com/terraform-provider-null/${TF_NULL_PROVIDER}/terraform-provider-null_${TF_NULL_PROVIDER}_linux_amd64.zip && \
60+ sudo mkdir -p /cd3user/.terraform.d/plugins/registry.terraform.io/hashicorp/null/${TF_NULL_PROVIDER}/linux_amd64 && \
61+ sudo unzip terraform-provider-null_${TF_NULL_PROVIDER}_linux_amd64.zip -d /cd3user/.terraform.d/plugins/registry.terraform.io/hashicorp/null/${TF_NULL_PROVIDER}/linux_amd64 && \
62+ sudo cp -r /cd3user/.terraform.d/plugins/registry.terraform.io /cd3user/.terraform.d/plugins/registry.opentofu.org && \
63+ sudo chown -R cd3user:cd3user /cd3user/ && \
64+ sudo rm -rf terraform-provider-null_${TF_NULL_PROVIDER}_linux_amd64.zip terraform-provider-oci_${TF_OCI_PROVIDER}_linux_amd64.zip ;\
65+ fi
66+
3867# #################################### START INSTALLING JENKINS ###################################
3968ARG JENKINS_VERSION=2.444
4069ARG JENKINS_SHA=ab093a455fc35951c9b46361002e17cc3ed7c59b0943bbee3a57a363f3370d2e
@@ -45,15 +74,7 @@ ARG JENKINS_HOME=/cd3user/tenancies/jenkins_home
4574ARG JENKINS_INSTALL=/usr/share/jenkins
4675ARG REF=/usr/share/jenkins/ref
4776
48- RUN sudo microdnf install -y java-21-openjdk && \
49- sudo microdnf install -y java-21-openjdk-devel && \
50- sudo microdnf install git-2.39.3 -y && \
51- sudo mkdir -p ${REF}/init.groovy.d && \
52- sudo chown -R cd3user:cd3user ${JENKINS_INSTALL} && \
53- sudo curl -fsSL http://updates.jenkins-ci.org/download/war/${JENKINS_VERSION}/jenkins.war -o ${JENKINS_INSTALL}/jenkins.war && \
54- echo "${JENKINS_SHA} ${JENKINS_INSTALL}/jenkins.war" | sha256sum -c - && \
55- sudo curl -fsSL ${PLUGIN_CLI_URL} -o ${JENKINS_INSTALL}/jenkins-plugin-manager.jar
56-
77+ ENV USE_DEVOPS ${USE_DEVOPS}
5778ENV JAVA_HOME /usr/lib/jvm/java-21-openjdk
5879ENV JENKINS_HOME ${JENKINS_HOME}
5980ENV JENKINS_INSTALL ${JENKINS_INSTALL}
@@ -64,11 +85,21 @@ ENV JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals
6485ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"
6586ENV COPY_REFERENCE_FILE_LOG ${JENKINS_HOME}/copy_reference_file.log
6687ENV CASC_JENKINS_CONFIG ${JENKINS_HOME}/jcasc.yaml
67-
6888COPY --chown=cd3user:cd3user jenkins_install ${JENKINS_INSTALL}/
6989COPY --chown=cd3user:cd3user jenkins_install/init/*.groovy ${REF}/init.groovy.d/
7090COPY --chown=cd3user:cd3user jenkins_install/plugins.txt ${REF}/plugins.txt
7191
72- RUN sudo java -jar ${JENKINS_INSTALL}/jenkins-plugin-manager.jar --war ${JENKINS_INSTALL}/jenkins.war --verbose -f ${REF}/plugins.txt && \
92+
93+ RUN if [ "$USE_DEVOPS" == "YES" ]; then \
94+ sudo microdnf install -y java-21-openjdk && \
95+ sudo microdnf install -y java-21-openjdk-devel && \
96+ sudo microdnf install git-2.39.3 -y && \
97+ sudo mkdir -p ${REF}/init.groovy.d && \
98+ sudo chown -R cd3user:cd3user ${JENKINS_INSTALL} && \
99+ sudo curl -fsSL http://updates.jenkins-ci.org/download/war/${JENKINS_VERSION}/jenkins.war -o ${JENKINS_INSTALL}/jenkins.war && \
100+ echo "${JENKINS_SHA} ${JENKINS_INSTALL}/jenkins.war" | sha256sum -c - && \
101+ sudo curl -fsSL ${PLUGIN_CLI_URL} -o ${JENKINS_INSTALL}/jenkins-plugin-manager.jar && \
102+ sudo java -jar ${JENKINS_INSTALL}/jenkins-plugin-manager.jar --war ${JENKINS_INSTALL}/jenkins.war --verbose -f ${REF}/plugins.txt && \
73103 sudo chown -R cd3user:cd3user ${JENKINS_INSTALL} && \
74- sudo chmod +x ${JENKINS_INSTALL}/jenkins.sh
104+ sudo chmod +x ${JENKINS_INSTALL}/jenkins.sh ; \
105+ fi
0 commit comments