added files
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
prepareDockerfileWithBuild(){
|
||||
cat << EOF > Dockerfile-${artifactId}
|
||||
# This sample, non-production-ready template describes an Amazon EC2 instance and an Elastic Load Balancer.
|
||||
# © 2020 Amazon Web Services, Inc. or its affiliates. All Rights Reserved.
|
||||
# This AWS Content is provided subject to the terms of the AWS Customer Agreement available at
|
||||
# http://aws.amazon.com/agreement or other written agreement between Customer and either
|
||||
# Amazon Web Services, Inc. or Amazon Web Services EMEA SARL or both.
|
||||
FROM 766380763301.dkr.ecr.ap-south-1.amazonaws.com/build/maven:3.3-jdk-8 as BUILD
|
||||
WORKDIR /usr/src/app
|
||||
COPY . /usr/src/app
|
||||
RUN mvn -s sandbox-settings.xml clean install -DskipTests
|
||||
RUN mkdir -p /var/log/${artifactId} && touch /var/log/${artifactId}/gc.log
|
||||
FROM 766380763301.dkr.ecr.ap-south-1.amazonaws.com/build/java:8-jdk-slim-secure_v1.0
|
||||
ADD https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.15.0/jmx_prometheus_javaagent-0.15.0.jar /opt/jmx_exporter.jar
|
||||
### Config added through configmap
|
||||
# COPY config.yaml /opt/config.yaml
|
||||
EXPOSE 8880 8010
|
||||
COPY --from=BUILD /usr/src/app/target/${artifactId}-${version}.jar /opt/target/${artifactId}.jar
|
||||
COPY --from=BUILD /var/log/${artifactId} /var/log/${artifactId}
|
||||
WORKDIR /opt/target
|
||||
CMD ["${artifactId}.jar", "-javaagent:/opt/jmx_exporter.jar=8880:/opt/config/jmx-config.yaml", \
|
||||
"-XX:MinRAMPercentage=50.0", "-XX:MaxRAMPercentage=80.0", \
|
||||
"-XX:+UseParallelGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails", \
|
||||
"-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime", "-XX:+PrintHeapAtGC", \
|
||||
"-Xloggc:/var/log/${artifactId}/gc.log", \
|
||||
"-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=9000k", \
|
||||
"-Xms2G", "-Xmx2G"]
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
prepareDockerfileNoBuild(){
|
||||
cat << EOF > Dockerfile-${artifactId}
|
||||
# This sample, non-production-ready template describes an Amazon EC2 instance and an Elastic Load Balancer.
|
||||
# © 2020 Amazon Web Services, Inc. or its affiliates. All Rights Reserved.
|
||||
# This AWS Content is provided subject to the terms of the AWS Customer Agreement available at
|
||||
# http://aws.amazon.com/agreement or other written agreement between Customer and either
|
||||
# Amazon Web Services, Inc. or Amazon Web Services EMEA SARL or both.
|
||||
FROM 766380763301.dkr.ecr.ap-south-1.amazonaws.com/build/maven:3.3-jdk-8 as BUILD
|
||||
#FROM asia-southeast1-docker.pkg.dev/supply-poc-351106/meesho-devops/maven:3.3-jdk-8 as BUILD
|
||||
RUN mkdir -p /var/log/${artifactId} && touch /var/log/${artifactId}/gc.log
|
||||
FROM 766380763301.dkr.ecr.ap-south-1.amazonaws.com/build/java:8-jdk-slim-secure_v1.0
|
||||
#FROM asia-southeast1-docker.pkg.dev/supply-poc-351106/meesho-devops/java:8
|
||||
ADD https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.15.0/jmx_prometheus_javaagent-0.15.0.jar /opt/jmx_exporter.jar
|
||||
### Config added through configmap
|
||||
# COPY config.yaml /opt/config.yaml
|
||||
EXPOSE 8880 8010
|
||||
COPY ${artifactId}/target/*.jar /opt/target/${artifactId}.jar
|
||||
COPY --from=BUILD /var/log/${artifactId} /var/log/${artifactId}
|
||||
WORKDIR /opt/target
|
||||
CMD ["${artifactId}.jar", "-javaagent:/opt/jmx_exporter.jar=8880:/opt/config/jmx-config.yaml", \
|
||||
"-XX:MinRAMPercentage=50.0", "-XX:MaxRAMPercentage=80.0", \
|
||||
"-XX:+UseParallelGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails", \
|
||||
"-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime", "-XX:+PrintHeapAtGC", \
|
||||
"-Xloggc:/var/log/${artifactId}/gc.log", \
|
||||
"-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=9000k", \
|
||||
"-Xms2G", "-Xmx2G"]
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
main(){
|
||||
if [[ $# == 4 ]];then
|
||||
export artifactId=$1
|
||||
export version=$2
|
||||
export doBuild=$3
|
||||
export repoName=$4
|
||||
if [[ $doBuild == "YES" ]];then
|
||||
rm -f Dockerfile-${artifactId}
|
||||
prepareDockerfileWithBuild
|
||||
else
|
||||
rm -f Dockerfile-${artifactId}
|
||||
prepareDockerfileNoBuild
|
||||
fi
|
||||
ls -latr
|
||||
cat Dockerfile-${artifactId}
|
||||
else
|
||||
echo "Please provide required parameters"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main $@
|
||||
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
prepareDockerfile(){
|
||||
cat << EOF > Dockerfile-${artifactId}
|
||||
|
||||
ARG ACCOUNT_ID=766380763301
|
||||
|
||||
FROM \${ACCOUNT_ID}.dkr.ecr.ap-southeast-1.amazonaws.com/build/node:12.22.1-slim as build-env
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
RUN npm install
|
||||
|
||||
FROM \${ACCOUNT_ID}.dkr.ecr.ap-southeast-1.amazonaws.com/build/node:12.22.1-alpine
|
||||
|
||||
# for health checks
|
||||
# RUN apk add --update --no-cache curl=7.74.0-r1
|
||||
|
||||
USER node:1000
|
||||
|
||||
COPY --chown=node:1000 --from=build-env /usr/src/app /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
EXPOSE 2020
|
||||
|
||||
COPY --chown=node:1000 . .
|
||||
|
||||
CMD ["npm", "start"]
|
||||
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
main(){
|
||||
if [[ $# == 1 ]];then
|
||||
export artifactId=$1
|
||||
rm -f Dockerfile-${artifactId}
|
||||
prepareDockerfile
|
||||
ls -latr
|
||||
cat Dockerfile-${artifactId}
|
||||
else
|
||||
echo "Please provide required parameters"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main $@
|
||||
|
||||
Reference in New Issue
Block a user