- 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;'