sering kali ketika kita build docker-compose maka file yang sebelumnya kita buat di guest docker akan hilang, maka dari itu kita akan membuat permanent file setiap kita build compose maka akan otomatis tersedia script yang sebelumnya sudah kita buat
katakanlan pada parrent directory kita sudah sediakan script bernama aws-s3.sh
vim aws-s3.sh
#/bin/sh
DATE=$(date +%H-%M-%S).sql
FILE=db-$DATE
USERNAME=$1
PASSWORD=$2
HOST=$3
DATABASE=$4
AWS_SECRET=$5
BUCKET_NAME=$6
mysqldump -u $USERNAME -p$PASSWORD -h $HOST $DATABASE > ~/$FILE && \
export AWS_ACCESS_KEY_ID=AKIARQ7ZH7UDOPQEGMME && \
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET && \
echo "backup local database to AWS S3" && \
aws s3 cp ~/$FILE s3://$BUCKET_NAME/$FILElalu pada bagian docker-compose.yml setting sebagai berikut:
version: '3'
services:
jenkins:
container_name: jenkins
image: jenkins/jenkins
ports:
- "8080:8080"
volumes:
- "./jenkins_home:/var/jenkins_home"
networks:
- net
remote_host:
container_name: remote-host
image: remote-host
build:
context: centos7
volumes:
- "./aws-s3.sh:/tmp/script.sh"
networks:
- net
centos1:
container_name: centos1
image: centos1
build:
context: OS
volumes:
- "./aws-s3.sh:/tmp/script.sh"
- "./OS/home/:/home/centos1/"
networks:
- net
db_host:
container_name: db
image: mysql:5.7
environment:
- "MYSQL_ROOT_PASSWORD=12345"
volumes:
- "./db_data:/var/lib/mysql"
networks:
- net
database:
container_name: database
image: mysql:5.7
environment:
- "MYSQL_ROOT_PASSWORD=12345"
volumes:
- "./database_data:/var/lib/mysql"
networks:
- net
networks:
net: setelah itu tinggal build
sudo docker-compose build
sudo docker-compose up -d
maka ambil contoh kita run di remote-host
sudo docker exec -ti remote-host bash

file script.sh sudah otomatis terupload di /tmp/