@@ -6,7 +6,8 @@ USAGE="Magento Cloud Docker
66
77\033[33mArguments:\033[0m
88 pull pull latest images
9- up destroy, re-create and start containers
9+ init destroy, re-create and start containers and volumes
10+ up create or start containers
1011 down destroy containers
1112 bash connect to bash
1213 stop stop containers
@@ -23,15 +24,61 @@ USAGE="Magento Cloud Docker
2324 php 7.2 run a command in a PHP 7.2 container
2425 php 7.3 run a command in a PHP 7.3 container
2526 php 7.4 run a command in a PHP 7.4 container
27+ php 8.0 run a command in a PHP 8.0 container
28+ copy-to copy to container (use --all or specific file/directory)
29+ copy-from copy from container (use --all or specific file/directory)
30+ fix-owns fix ownership to www:www
2631
2732\033[33mOptions:\033[0m
2833 -h show this help text\n"
2934
35+ function fix-owns() {
36+ if [ -z " $1 " ]; then
37+ docker-compose exec -u root -T fpm chown -R www:www /app
38+ else
39+ docker-compose exec -u root -T fpm chown -R www:www /app/" $1 "
40+ fi
41+ }
42+
43+ function copy-to() {
44+ [ -z " $1 " ] && echo " Please specify a directory or file to copy to container (ex. vendor, --all)" && exit
45+
46+ if [ " $1 " == " --all" ]; then
47+ docker cp " ./" " $( docker-compose ps -q fpm | awk ' {print $1}' ) " :/app/
48+ echo " Completed copying all files from host to container"
49+ fix-owns
50+ else
51+ if [ -f " ../$1 " ]; then
52+ docker cp " ./${1} " " $( docker-compose ps -q fpm | awk ' {print $1}' ) " :/app/" $1 "
53+ else
54+ docker cp " ./${1} " " $( docker-compose ps -q fpm | awk ' {print $1}' ) " :/app/" $( dirname " $1 " ) "
55+ fi
56+ echo " Completed copying $1 from host to container"
57+ fix-owns " $1 "
58+ fi
59+ }
60+
61+ function copy-from() {
62+ [ -z " $1 " ] && echo " Please specify a directory or file to copy from container (ex. vendor, --all)" && exit
63+
64+ if [ " $1 " == " --all" ]; then
65+ docker cp " $( docker-compose ps -q fpm | awk ' {print $1}' ) " :/app/ " ./"
66+ echo " Completed copying all files from container to host"
67+ else
68+ if [ -f " $1 " ]; then
69+ docker cp " $( docker-compose ps -q fpm | awk ' {print $1}' ) " :/app/" $1 " " ./$1 "
70+ else
71+ docker cp " $( docker-compose ps -q fpm | awk ' {print $1}' ) " :/app/" $1 " " ./$( dirname " $1 " ) "
72+ fi
73+ echo " Completed copying $1 from container to host"
74+ fi
75+ }
76+
3077if [ ${#@ } -ne 0 ]; then
3178 for arg in " $@ " ; do
3279 if [ " ${arg# " -h" } " = " " ]; then
3380 printf " $USAGE "
34- exit 0;
81+ exit 0
3582 fi
3683 done
3784fi ;
@@ -40,12 +87,20 @@ case "$1" in
4087 pull)
4188 docker-compose pull
4289 ;;
90+ init)
91+ read -p " Any existing data volumes will be removed. Are you sure? [y/N] " -r
92+ echo
93+ if [[ $REPLY =~ ^[Yy]$ ]]
94+ then
95+ docker-compose down --volumes
96+ docker-compose up --detach
97+ fi
98+ ;;
4399 up)
44- docker-compose down --volumes
45100 docker-compose up --detach
46101 ;;
47102 down)
48- docker-compose down --volumes
103+ docker-compose down
49104 ;;
50105 bash)
51106 docker-compose run --rm deploy bash
@@ -86,7 +141,7 @@ case "$1" in
86141 version=" $2 "
87142 shift 2
88143 # allow ssh-agent forwarding for composer.json files that need access to private repos
89- if [[ $( uname) = Darwin ]]; then
144+ if [[ $( uname) == Darwin ]]; then
90145 # https://docs.docker.com/docker-for-mac/osxfs/#ssh-agent-forwarding (D4M > 2.2)
91146 export SSH_AUTH_SOCK=" /run/host-services/ssh-auth.sock"
92147 fi
@@ -95,7 +150,17 @@ case "$1" in
95150 --mount " type=bind,src=$SSH_AUTH_SOCK ,target=$SSH_AUTH_SOCK " -e SSH_AUTH_SOCK=" $SSH_AUTH_SOCK " \
96151 " magento/magento-cloud-docker-php:${version} -cli-1.1" " $@ "
97152 ;;
153+ copy-to)
154+ copy-to $2
155+ ;;
156+ copy-from)
157+ copy-from $2
158+ ;;
159+ fix-owns)
160+ fix-owns
161+ ;;
98162 * )
99163 printf " $USAGE "
100- exit 0;
164+ exit 0
165+ ;;
101166esac
0 commit comments