@@ -16,11 +16,38 @@ if [[ -z $1 ]]; then
1616 exit 1
1717fi
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