Skip to content

Commit efcf083

Browse files
committed
generate the docker-compose from template
1 parent 00b1076 commit efcf083

File tree

3 files changed

+51
-26
lines changed

3 files changed

+51
-26
lines changed

docker-compose.template

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: '3'
2+
services:
3+
db:
4+
image: postgres:9.6-alpine
5+
volumes:
6+
- pgdata:/var/lib/postgresql/data
7+
web:
8+
image: replace_me_with_proper_image
9+
volumes:
10+
- .:/app
11+
ports:
12+
- "4000:4000"
13+
depends_on:
14+
- db
15+
volumes:
16+
pgdata:

docker-compose.yml

Lines changed: 0 additions & 18 deletions
This file was deleted.

init

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,38 @@ if [[ -z $1 ]]; then
1616
exit 1
1717
fi
1818

19-
docker-compose -p $1 up -d
20-
docker-compose -p $1 run web mix phoenix.new $1
21-
mv $1/* ./
22-
mv $1/.gitignore ./
23-
rm -rf $1
24-
sed -i.bak 's/hostname: "localhost"/hostname: "db"/g' config/dev.exs && rm -f config/dev.exs.bak
25-
docker-compose -p $1 run web mix ecto.create
26-
docker-compose -p $1 restart web
19+
project_name=$1
20+
21+
#Build the image
22+
docker build . -t ${project_name}:latest
23+
24+
function create_new_project() {
25+
#Create the project and get deps
26+
docker run -v `pwd`:/app ${project_name}:latest mix phoenix.new ${project_name}
27+
docker run -v `pwd`/${project_name}:/app ${project_name}:latest mix deps.get
28+
29+
#Config the dev database
30+
sed -i.bak 's/hostname: "localhost"/hostname: "db"/g' ${project_name}/config/dev.exs
31+
rm -f ${project_name}/config/dev.exs.bak
32+
33+
# Move everything to the root directory
34+
mv ${project_name}/* ./
35+
mv ${project_name}/.gitignore ./
36+
rm -rf ${project_name}
37+
38+
#Set the image name in docker-compose
39+
sed -i.bak "s/replace_me_with_proper_image/${project_name}:latest/g" docker-compose.template
40+
mv docker-compose.template docker-compose.yml
41+
rm -r docker-compose.template.bak
42+
#Start db and web components
43+
docker-compose -p ${project_name} up -d
44+
docker-compose -p ${project_name} run web mix ecto.create
45+
docker-compose -p ${project_name} restart web
46+
}
47+
48+
if [ ! -f "mix.exs" ]; then
49+
echo "Initilizing ${project_name}"
50+
create_new_project
51+
else
52+
docker-compose -p ${project_name} up -d
53+
fi

0 commit comments

Comments
 (0)