4
4
set -eo pipefail
5
5
6
6
function escape {
7
- echo " $1 " | tr A-Z a-z | sed " s/[^a-z0-9]/-/g" | sed " s/^-+\|-+$//g"
7
+ echo " $1 " | tr A-Z a-z | sed " s/[^a-z0-9]/-/g" | sed " s/^-+\|-+$//g"
8
8
}
9
9
10
10
function action {
11
- echo " !!===> $1 "
11
+ echo " !!===> $1 "
12
12
}
13
13
14
14
function info {
15
- echo " $1 "
15
+ echo " $1 "
16
16
}
17
17
18
18
function rollback {
@@ -33,28 +33,32 @@ VERSION=$(escape $3)
33
33
BY_KEYWORD=$4
34
34
DOCKER_IMAGE=$5
35
35
36
+ if [[ " $6 " == " --import" ]]; then
37
+ IMPORT_DB_FROM_APP=" $7 "
38
+ fi
39
+
36
40
DOMAIN=${APP} .dev.doma.ai
37
41
DESTROY_SCRIPT_PATH=" ~/do.${APP} .destroy.sh"
38
42
RUN_AFTER_DEPLOY=false
39
43
40
44
source .env
41
45
42
46
if [[ -z " ${DOCKER_COMPOSE_START_APP_COMMAND} " ]]; then
43
- echo " NO: DOCKER_COMPOSE_START_APP_COMMAND check .env"
44
- exit 1
47
+ echo " NO: DOCKER_COMPOSE_START_APP_COMMAND check .env"
48
+ exit 1
45
49
fi
46
50
if [[ -z " ${DOCKER_COMPOSE_START_WORKER_COMMAND} " ]]; then
47
- echo " NO: DOCKER_COMPOSE_START_WORKER_COMMAND check .env"
48
- exit 1
51
+ echo " NO: DOCKER_COMPOSE_START_WORKER_COMMAND check .env"
52
+ exit 1
49
53
fi
50
54
if [[ -z " ${DOCKER_COMPOSE_MIGRATION_COMMAND} " ]]; then
51
- echo " NO: DOCKER_COMPOSE_MIGRATION_COMMAND check .env"
52
- exit 1
55
+ echo " NO: DOCKER_COMPOSE_MIGRATION_COMMAND check .env"
56
+ exit 1
53
57
fi
54
58
if [[ -z " ${SSH_DESTINATION} " ]] || [[ -z " ${APP} " ]] || [[ " ${BY_KEYWORD} " != " by" ]] || [[ -z " ${DOCKER_IMAGE} " ]]; then
55
- echo " Use: $0 <SSH_DESTINATION> <APP-NAME> <APP-VERSION-NAME> by <DOCKER-IMAGE>"
56
- echo " Example: $0 [email protected] demo v1 by apps:demo"
57
- exit 1
59
+ echo " Use: $0 <SSH_DESTINATION> <APP-NAME> <APP-VERSION-NAME> by <DOCKER-IMAGE>"
60
+ echo " Example: $0 [email protected] demo v1 by apps:demo"
61
+ exit 1
58
62
fi
59
63
60
64
echo " $( date +%Y-%m-%d-%H-%M-%S) - deploy.dev.sh $@ (APP=${APP} ; VERSION=${VERSION} )"
99
103
action " Deploy app ${APP} by ${DOCKER_IMAGE} "
100
104
run " docker tag ${DOCKER_IMAGE} dokku/${APP} :${VERSION} "
101
105
run " dokku tags:deploy ${APP} ${VERSION} "
106
+
107
+ if [[ ! -z " ${IMPORT_DB_FROM_APP} " ]]; then
108
+ action " Import database from ${IMPORT_DB_FROM_APP} "
109
+ run " dokku postgres:export ${IMPORT_DB_FROM_APP} > /tmp/temp.dump" || echo ' export error!'
110
+ run " dokku postgres:import ${APP} < /tmp/temp.dump" || echo ' import error!'
111
+ fi
112
+
113
+ action " Run migrations"
102
114
run " docker exec -u root ${APP} .web.1 ${DOCKER_COMPOSE_MIGRATION_COMMAND} "
103
115
104
116
if [[ " $RUN_AFTER_DEPLOY " == " true" ]]; then
0 commit comments