- Published on
Common Dockerfiles and Scripts
- Authors
- Name
- Yuchen Wei
Script: Automatically Push Docker Images
This script is used to automatically tag and push Docker images to a specified registry.
#!/bin/bash
set -e
if [[ "$1" =~ (2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])(\.(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])){3} ]]; then
echo "$0 [Registry Address] "
registry_ip=$1
for i in `docker images --format="{{.Repository}}:{{.Tag}}"`; do
docker tag $i $registry_ip"/"$i
done
else
exit 1
fi
Dockerfile: Java Application with Timezone Configuration
FROM openjdk-8-jre-dmp:latest
LABEL maintainer="qi.gao"
ENV VERSION 2.0.0
COPY apollo-adminservice/target/apollo-adminservice-${VERSION}.jar /app.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Sydney" > /etc/timezone
EXPOSE 8090
ENTRYPOINT java -XX:+PrintFlagsFinal \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseCGroupMemoryLimitForHeap \
$JAVA_OPTS -jar /app.jar
Dockerfile: Multi-stage Build for Node.js and Nginx
## step1
FROM docker-local.art.ocp.csvw.com/mac/node:10 as builder
WORKDIR /app
COPY ./ /app/
RUN npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
RUN npm install --registry https://registry.npm.taobao.org
RUN npm run build
## step2
FROM docker-local.art.ocp.csvw.com/mac/nginx:1.16.1
LABEL io.daocloud.system=build-in
WORKDIR /app
# Copy built files from Node.js build stage
COPY --from=builder /app/dist /usr/share/nginx/html
COPY --from=builder /app/nginx.conf /etc/nginx/nginx.conf
COPY --from=builder /app/run.sh /app/run.sh
# Set environment variables
ENV USER_CENTER_URL=http://dmp-user-center:9050 \
HELP_URL=https://guide.daocloud.io/dmp-2.4 \
DMP_META=http://dmp-apollo-configservice:8080 \
TWICE_URL=http://dmp-twice:8765 \
CONFIG_CENTER_URL=http://dmp-apollo-adminservice:8090 \
FATE_URL=http://dmp-fate:9056
# Adjust permissions for Nginx
RUN chown -R nginx:nginx /app && \
chown -R nginx:nginx /usr/share/nginx && \
chown -R nginx:nginx /var/cache/nginx && \
chown -R nginx:nginx /var/log/nginx && \
chown -R nginx:nginx /etc/nginx && \
touch /var/run/nginx.pid && \
chown -R nginx:nginx /var/run/nginx.pid && \
touch /etc/nginx/nginx.conf.old && \
chown -R nginx:nginx /etc/nginx/nginx.conf.old && \
chmod -R 777 /app /usr/share/nginx /var/cache/ /var/log/ /etc/nginx /var/run
USER nginx
EXPOSE 8080
CMD /app/run.sh && nginx -g 'daemon off;'