Enhance entrypoint script to clean up environment files, volume destinations, firewall rules, and domains during service removal
This commit is contained in:
@@ -165,9 +165,67 @@ remove_additionals() {
|
||||
debug "$service_exec service-$NAME.json stop force dns-remove"
|
||||
$service_exec service-$NAME.json stop force dns-remove
|
||||
|
||||
# remove related directories and files
|
||||
# get env files path
|
||||
ENVIRONMENT_FILES=""
|
||||
ENVIRONMENT_FILES=$(cat $SERVICE_DIR/$NAME.json | jq -r '[.containers[] | select(has("ENV_FILES")) | .ENV_FILES[]] | unique []')
|
||||
|
||||
for ENV_FILE in $(echo $ENVIRONMENT_FILES); do
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
rm $ENV_FILE
|
||||
debug "deleted env file: $ENV_FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
# get volume destinations
|
||||
DESTINATIONS=""
|
||||
DESTINATIONS=$(cat $SERVICE_DIR/$NAME.json | jq -r '[.containers[] | select(has("VOLUMES")) | .VOLUMES[] | select(.SHARED != "true") | .DEST] | unique[]')
|
||||
for DESTINATION in $(echo $DESTINATIONS); do
|
||||
if [ -d "$DESTINATION" ] || [ -f "$DESTINATION" ]; then
|
||||
rm -rf $DESTINATION
|
||||
debug "deleted volume destination: $DESTINATION"
|
||||
fi
|
||||
done
|
||||
|
||||
# delete firewall rules
|
||||
FIREWALLS=""
|
||||
FIREWALLS="$(ls $SERVICE_DIR/firewall-*.json | grep -v $NAME)"
|
||||
for FIREWALL in $(echo $FIREWALLS); do
|
||||
cat $FIREWALL | jq '.containers[] |= (
|
||||
if (.ENVS | map(has("OPERATION")) | any) then
|
||||
# If any entry has OPERATION key, update it
|
||||
.ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end]
|
||||
else
|
||||
# If no entry has OPERATION key, add new entry
|
||||
.ENVS += [{"OPERATION": "DELETE"}]
|
||||
end
|
||||
)' >$FIREWALL.tmp
|
||||
debug "$service_exec $FIREWALL.tmp start info"
|
||||
$service_exec $FIREWALL.tmp start info
|
||||
rm $FIREWALL.tmp
|
||||
done
|
||||
|
||||
# delete domains
|
||||
DOMMAINS=""
|
||||
DOMAINS="$(ls $SERVICE_DIR/domain-*.json | grep -v $NAME)"
|
||||
for DOMAIN in $(echo $DOMAINS); do
|
||||
cat $DOMAIN | jq '.containers[] |= (
|
||||
if (.ENVS | map(has("OPERATION")) | any) then
|
||||
# If any entry has OPERATION key, update it
|
||||
.ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end]
|
||||
else
|
||||
# If no entry has OPERATION key, add new entry
|
||||
.ENVS += [{"OPERATION": "DELETE"}]
|
||||
end
|
||||
)' >$DOMAIN.tmp
|
||||
debug "$service_exec $DOMAIN.tmp start info"
|
||||
$service_exec $DOMAIN.tmp start info
|
||||
rm $DOMAIN.tmp
|
||||
done
|
||||
|
||||
# remove service files
|
||||
rm $SERVICE_DIR/*"-"$NAME.json # service, domain, etc.
|
||||
rm $SECRET_DIR/$NAME/$NAME.json
|
||||
|
||||
}
|
||||
|
||||
get_repositories() {
|
||||
|
Reference in New Issue
Block a user