실시간으로 정보를 받을 수 있도록 pod안에 volum을 마운트해줘서 하나는 개발자의 변경되는 사항을 저장하고 웹서버는 그것을 읽어서 배포해주는 근데 이때 볼륨을 사용하는 이것이 사이드카라고 생각하자
git에 올릴 index.html 은 간단하게
version1.0 이라고 작성했다.
FROM ubuntu:latest
RUN apt update && apt install -y git
ADD ./contents-pull.sh /contents-pull.sh
RUN chmod 755 /contents-pull.sh
WORKDIR /
CMD /contents-pull.sh
#!/bin/bash
if [ -z $CONTENTS_SOURCE_URL ]; then
exit 1
fi # 변수값이 없으면 종료
git clone $CONTENTS_SOURCE_URL /data
# 여기다가 저장하도록 만들어 놓고 받도록
cd /data
while true
do
date
sleep 60
git pull
done
# 업데이트 된 내용으로 정보를 받아오는 것
docker build --tag gugucone/pull:1.0 .
이미지 빌드하고
docker push gugucone/pull:1.0
허브에 올려주고
도커퍼브에서 이미지 파일을 가져오고 깃 허브에서 올린 index.html 파일을 가져오도록! 근데 그걸 60초 마다 계속 받아오도록 해준다라고 생각하자 근데 이걸 emptydir로 마운트해서 사용하는 것이다.
k8s pod는 아래와 같이 만들어줬다.
apiVersion: v1
kind: Pod
metadata:
name: sidecar
labels:
app: sidecar
spec:
containers:
- name: nginx
image: nginx:latest
volumeMounts:
- name: empty-dir
mountPath: /usr/share/nginx/html
- name: git
image: gugucone/pull:1.0
env:
- name: CONTENTS_SOURCE_URL
value: https://github.com/gugucone999/k8s.git
volumeMounts:
- name: empty-dir
mountPath: /data
volumes:
- name: empty-dir
emptyDir: {}