forked from ExpressionEngine/ExpressionEngine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
eetools
executable file
·61 lines (46 loc) · 1.46 KB
/
eetools
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
STASH_NAME=`git stash create`;
if [ "$STASH_NAME" == "" ]; then
STASH_NAME="HEAD"
fi
git archive --format=tar -o ee.tar $STASH_NAME
# Absolutely have to have the git folder available in the archive?
#tar --append --file=ee.tar .git
IMAGE_NAME="expressionengine/eecms-test:old"
VOLUME_ID=`docker volume create`
HELPER_CONTAINER_ID=`docker create -v $VOLUME_ID:/app $IMAGE_NAME /bin/true`
function remove_app_volume {
docker rm $HELPER_CONTAINER_ID
docker volume rm $VOLUME_ID
}
function commit_container_changes {
CONTAINER_ID=`docker ps -l -q`
docker commit $CONTAINER_ID $IMAGE_NAME
}
function remove_last_container {
CONTAINER_ID=`docker ps -l -q`
docker rm $CONTAINER_ID
}
STATUS=0
# Open a prompt on the Docker container to fiddle
if [ "$1" == "prompt" ]; then
docker run -t -i -p 8080:80 -v $(pwd):/app $IMAGE_NAME /bin/bash
# Install or update gems
elif [ "$1" == "updategems" ]; then
docker run -t -i -v $(pwd):/app $IMAGE_NAME ./updategems.sh
commit_container_changes
remove_last_container
else
docker cp ee.tar $HELPER_CONTAINER_ID:/app
# Have to quote this to get multiple arguments working for run.sh
DOCKER_CMD="docker run --rm -t -i -v /app --volumes-from $HELPER_CONTAINER_ID $IMAGE_NAME /bin/bash -c \"./run.sh $@\""
eval $DOCKER_CMD
((STATUS+=$?))
if [ ! -d /tmp/artifacts ]; then
mkdir /tmp/artifacts > /dev/null
fi
docker cp $HELPER_CONTAINER_ID:/app/artifacts/. /tmp/artifacts
fi
remove_app_volume > /dev/null
rm ee.tar
exit $STATUS