Docker的env、env-file及模擬k8s的configmap

一.env、env-file

cat > /tmp/envfile.txt <<EOF
content='Hello,this is chinoukin 's evnfile'
EOF
docker run -i --rm \
-e superman=chinoukin --env cn=china \
--env-file /tmp/envfile.txt \
-v /tmp:/tmp \
busybox:latest \
/bin/sh -c 'echo $superman $cn $content && printenv'

二.模擬k8s中的configmap

  1.先來看看k8s中的配置

  configmap:

   

  yaml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    run: service-feign
  name: service-feign
  namespace: default
spec:
  selector:
    matchLabels:
      run: service-feign
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        run: service-feign
    spec:
      containers:
      - image: 192.168.70.133:5000/service-feign:latest
        imagePullPolicy: IfNotPresent
        name: service-feign
        #command: [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/usr/local/wiseapp/app.jar", "--eureka.client.service-url.defaultZone=http://eurekaserver/eureka/ -Xms256m -Xmx256m" ]
        #command: ["./entrypoint.sh"]
        #command: [ "/bin/sh", "-c", "bootJavaOpts=$(cat /etc/config/bootJavaOpts) jvmOpts=$(cat /etc/config/jvmOpts) && java -Djava.security.egd=file:/dev/./urandom -jar /app.jar $bootJavaOpts $jvmOpts" ]
        command:
          - "/bin/sh"
          - "-c"
          # - "bootJavaOpts=$(cat /etc/config/bootJavaOpts) && jvmOpts=$(cat /etc/config/jvmOpts) && java -Djava.security.egd=file:/dev/./urandom -jar /app.jar $bootJavaOpts $jvmOpts"
          - "java -Djava.security.egd=file:/dev/./urandom -jar /app.jar $(cat /etc/config/bootJavaOpts) $(cat /etc/config/jvmOpts)"
        volumeMounts:
        - name: config-volume
          mountPath: /etc/config
      volumes:
      - name: config-volume
        configMap:
          name: my-config
          items:
          - key: bootJavaOpts
            path: bootJavaOpts
          - key: jvmOpts
            path: jvmOpts
      imagePullSecrets:
      - name: mydocker-registry
      restartPolicy: Always

 

2.模擬上述的configmap  

由於openjdk鏡像比較大,所以先pull下來

docker pull openjdk:8-apline
cat > /tmp/configmapkey <<EOF
-version
EOF
docker run -i --rm \
-v /tmp:/tmp \
openjdk:8-alpine \
/bin/sh -c 'javaopt=$(cat /tmp/configmapkey) && java $javaopt'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章