41 lines
1.5 KiB
Bash
41 lines
1.5 KiB
Bash
ALL_CONTAINER=$(docker ps --format '{{.Names}}')
|
|
ALL_PROJECTS=$(for i in $ALL_CONTAINER; do docker inspect --format '{{ index .Config.Labels "com.docker.compose.project.working_dir"}}' $i; done | sort -u)
|
|
|
|
EXPORT_DIR='./export'
|
|
|
|
for project in $ALL_PROJECTS; do
|
|
PROJECT_NAME=${project##*/}
|
|
echo -e '\n project: '$project
|
|
|
|
# exclude projects
|
|
# if [ "$project" != "/docker/synapse" ]; then
|
|
# continue;
|
|
# fi
|
|
|
|
# all images
|
|
while read -r image; do
|
|
echo 'img: '$image
|
|
done < <(grep -Po "(?<=image: ).*$" $project/docker-compose.yml)
|
|
|
|
# all containers name
|
|
while read -r name; do
|
|
echo 'container: '$name
|
|
echo $name
|
|
# docker inspect $name
|
|
# all volumes
|
|
while read -r volume; do
|
|
echo "vol: "$volume
|
|
done < <(docker inspect --format="{{.Mounts}}" $name)
|
|
done < <(grep -Po '(?<=container_name: ).*$' $project/docker-compose.yml)
|
|
done
|
|
|
|
| grep '[\{.+\}]*'
|
|
# test multi volumes
|
|
# postgres
|
|
# jisti using config env
|
|
|
|
# todo why doens't work everywhere
|
|
# todo
|
|
docker inspect --format="{{.Mounts}}" synapse
|
|
|
|
[{bind /etc/localtime /etc/localtime ro false rprivate} {volume nextcloud_nextcloud /var/lib/docker/volumes/nextcloud_nextcloud/_data /var/www/html local rw true } {bind /docker/nextcloud/app/config /var/www/html/config rw true rprivate} {bind /docker/nextcloud/app/custom_apps /var/www/html/custom_apps rw true rprivate} {bind /media/nextcloud /var/www/html/data rw true rprivate} {bind /docker/nextcloud/app/themes /var/www/html/themes rw true rprivate}] |