* correctly pass secrets to workspace-containers
* update README * helper-scripts with create symlinks helper and get composer auth github token helper
This commit is contained in:
89
README.md
89
README.md
@ -1,8 +1,89 @@
|
|||||||
## Run docker build
|
## First
|
||||||
|
Create alias for `docker-compose` command.
|
||||||
|
|
||||||
First. You need export environment variable
|
`echo 'alias dc="docker-compose"' >> ~/.bash_aliases`
|
||||||
`export DOCKER_BUILDKIT=1` (more info https://github.com/edrevo/dockerfile-plus)
|
|
||||||
|
Also, you have might be needed include `~/.bash_aliases` in your `~/.bashrc` file.
|
||||||
|
|
||||||
|
Build all
|
||||||
|
|
||||||
|
`dc build`
|
||||||
|
|
||||||
|
## Second
|
||||||
|
|
||||||
|
Create usefully symlinks
|
||||||
|
|
||||||
|
`./create-symlinks.sh`
|
||||||
|
|
||||||
|
## Get composer auth token
|
||||||
|
|
||||||
|
If you do not have composer github auth.json file in `~/.composer` dir. You will need launch the helper-script:
|
||||||
|
|
||||||
|
`./get-composer-auth.sh`
|
||||||
|
|
||||||
|
## Before use and launch
|
||||||
|
|
||||||
|
You need copy `vhosts.conf.example` and edit this file - remove unused roots (or change to existing dirs).
|
||||||
|
Setup correctly nginx config.
|
||||||
|
|
||||||
|
You ready for up containers.
|
||||||
|
|
||||||
|
`dc up -d`
|
||||||
|
|
||||||
## Database dumps
|
## Database dumps
|
||||||
|
|
||||||
Database dumps must be serve on `./hostfiles` directory.
|
Database dumps must be placement on `./hostfiles` directory.
|
||||||
|
|
||||||
|
## Bash scripts
|
||||||
|
|
||||||
|
After execute created symlinks, you have some enter-points for vulnerable popular tasks.
|
||||||
|
|
||||||
|
### Xdebug
|
||||||
|
For start debugging in php-fpm, also in workspace
|
||||||
|
|
||||||
|
`./start-xdebug.sh [74|73]` - `74` by default
|
||||||
|
|
||||||
|
For start debugging in php-fpm, also in workspace
|
||||||
|
|
||||||
|
`./stop-xdebug.sh` or `./stop-xdebug.sh 73` if you launch start with php-version 73
|
||||||
|
|
||||||
|
### Mysql
|
||||||
|
|
||||||
|
For import dumps from `hostfiles` directory you might be enter to mysql console:
|
||||||
|
|
||||||
|
`./mysql.sh`
|
||||||
|
|
||||||
|
Change you needed database and source to the `*.sql` dump.
|
||||||
|
|
||||||
|
`use mydatabase`
|
||||||
|
|
||||||
|
`source /hostfiles/mydatabase.sql`
|
||||||
|
|
||||||
|
Dump must be extracted before source in mysql-cli
|
||||||
|
|
||||||
|
### Workspace
|
||||||
|
|
||||||
|
For execute composer update|install or nodejs operations, also yarn, npm and all node-builds.
|
||||||
|
You might use `workspace`-container
|
||||||
|
|
||||||
|
For the enter to workspace container with php 7.4 you need launch usefully helper script in your home directory:
|
||||||
|
|
||||||
|
`./enter-to-workspace.sh`
|
||||||
|
|
||||||
|
For enter to `workspace` with php7.3 you need pass `73` container name suffix
|
||||||
|
|
||||||
|
`./enter-to-workspace.sh 73`
|
||||||
|
|
||||||
|
### Nginx
|
||||||
|
|
||||||
|
For restart `nginx` after some changes in nginx configuration, you might:
|
||||||
|
|
||||||
|
`./restart-nginx.sh`
|
||||||
|
|
||||||
|
## Src build need DOCKER_BUILDKIT
|
||||||
|
|
||||||
|
If you want build own workspace image. You need export environment variable
|
||||||
|
|
||||||
|
`export DOCKER_BUILDKIT=1`
|
||||||
|
|
||||||
|
more info https://github.com/edrevo/dockerfile-plus
|
||||||
|
@ -1,3 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd $HOME/structure
|
DIR="$(realpath $(dirname "$(readlink -f "$0")")/..)"
|
||||||
docker-compose exec workspace su laradock
|
|
||||||
|
PHP_VERSION=$1 # Without dot
|
||||||
|
|
||||||
|
if [[ -z "${PHP_VERSION}" ]]; then PHP_VERSION=74; fi
|
||||||
|
|
||||||
|
# Grab full name of php-fpm container
|
||||||
|
WORKSPACE_CONTAINER=$(docker ps | grep workspace${PHP_VERSION} | awk '{print $1}')
|
||||||
|
|
||||||
|
if [[ -z "${WORKSPACE_CONTAINER}" ]]; then
|
||||||
|
echo "Unable to find workspace container: workspace${PHP_VERSION}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker exec -ti ${WORKSPACE_CONTAINER} su laradock
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd $HOME/structure
|
DIR="$(realpath $(dirname "$(readlink -f "$0")")/..)"
|
||||||
./dockerfiles/php$1-fpm/xdebug.sh stop && cd
|
|
||||||
|
PHP_VERSION=$1 # Without dot
|
||||||
|
|
||||||
|
if [[ -z "${PHP_VERSION}" ]]; then PHP_VERSION=74; fi
|
||||||
|
|
||||||
|
${DIR}/dockerfiles/php-fpm/xdebug.sh stop ${PHP_VERSION}
|
||||||
|
${DIR}/dockerfiles/workspace/xdebug.sh stop ${PHP_VERSION}
|
@ -1,3 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd $HOME/structure
|
DIR="$(realpath $(dirname "$(readlink -f "$0")")/..)"
|
||||||
./dockerfiles/php$1-fpm/xdebug.sh start && cd
|
|
||||||
|
PHP_VERSION=$1 # Without dot
|
||||||
|
|
||||||
|
if [[ -z "${PHP_VERSION}" ]]; then PHP_VERSION=74; fi
|
||||||
|
|
||||||
|
${DIR}/dockerfiles/php-fpm/xdebug.sh start ${PHP_VERSION}
|
||||||
|
${DIR}/dockerfiles/workspace/xdebug.sh start ${PHP_VERSION}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
upstream php-fpm73 {
|
upstream php73 {
|
||||||
server php-fpm73:9000;
|
server php73:9000;
|
||||||
}
|
}
|
||||||
|
|
||||||
upstream php-fpm74 {
|
upstream php74 {
|
||||||
server php-fpm74:9000;
|
server php74:9000;
|
||||||
}
|
}
|
||||||
|
|
||||||
map $http_host $root {
|
map $http_host $root {
|
||||||
@ -20,7 +20,7 @@ server {
|
|||||||
include includes.d/octobercms.conf;
|
include includes.d/octobercms.conf;
|
||||||
include includes.d/staticfiles.conf;
|
include includes.d/staticfiles.conf;
|
||||||
location ~ ^/index.php {
|
location ~ ^/index.php {
|
||||||
fastcgi_pass php-fpm74;
|
fastcgi_pass php74;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
}
|
}
|
||||||
@ -49,7 +49,7 @@ server {
|
|||||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
|
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
|
||||||
|
|
||||||
fastcgi_pass php-fpm73;
|
fastcgi_pass php73;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
}
|
}
|
||||||
}
|
}
|
8
create-symlinks.sh
Executable file
8
create-symlinks.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
DIR="$(realpath $(dirname "$(readlink -f "$0")"))"
|
||||||
|
|
||||||
|
ln -s ${DIR}/bash/start-xdebug.sh ${HOME}/
|
||||||
|
ln -s ${DIR}/bash/quit-xdebug.sh ${HOME}/
|
||||||
|
ln -s ${DIR}/bash/restart-nginx.sh ${HOME}/
|
||||||
|
ln -s ${DIR}/bash/mysql.sh ${HOME}/
|
||||||
|
ln -s ${DIR}/bash/enter-to-workspace.sh ${HOME}/
|
@ -44,6 +44,10 @@ services:
|
|||||||
- ${PROJECTS_DIR}:/var/www
|
- ${PROJECTS_DIR}:/var/www
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "dockerhost:${DOCKER_HOST_IP}"
|
- "dockerhost:${DOCKER_HOST_IP}"
|
||||||
|
secrets:
|
||||||
|
- user_ssh_key
|
||||||
|
- user_known_hosts
|
||||||
|
- composer_auth
|
||||||
db:
|
db:
|
||||||
image: mariadb
|
image: mariadb
|
||||||
restart: always
|
restart: always
|
||||||
@ -70,3 +74,11 @@ services:
|
|||||||
# Must be copied into main docker-compose yml-file
|
# Must be copied into main docker-compose yml-file
|
||||||
volumes:
|
volumes:
|
||||||
database:
|
database:
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
user_ssh_key:
|
||||||
|
file: ~/.ssh/id_rsa
|
||||||
|
user_known_hosts:
|
||||||
|
file: ~/.ssh/known_hosts
|
||||||
|
composer_auth:
|
||||||
|
file: ~/.composer/auth.json
|
||||||
|
@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
# NOTE: At the moment, this has only been confirmed to work with PHP 7
|
# NOTE: At the moment, this has only been confirmed to work with PHP 7
|
||||||
|
|
||||||
PHP_VERSION=$1 # Without dot
|
PHP_VERSION=$2 # Without dot
|
||||||
|
|
||||||
# Grab full name of php-fpm container
|
# Grab full name of php-fpm container
|
||||||
PHP_FPM_CONTAINER=$(docker ps | grep php${PHP_VERSION} | awk '{print $1}')
|
PHP_FPM_CONTAINER=$(docker ps | grep php${PHP_VERSION} | awk '{print $1}')
|
||||||
|
|
||||||
|
if [[ -z "${PHP_FPM_CONTAINER}" ]]; then
|
||||||
|
echo "Unable to find php fpm container: php${PHP_VERSION}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Grab OS type
|
# Grab OS type
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
@ -81,7 +85,7 @@ xdebug_stop ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case $@ in
|
case $1 in
|
||||||
stop|STOP)
|
stop|STOP)
|
||||||
xdebug_stop
|
xdebug_stop
|
||||||
;;
|
;;
|
||||||
@ -95,7 +99,7 @@ case $@ in
|
|||||||
echo "xDebug [Stop | Start | Status] in the ${PHP_FPM_CONTAINER} container."
|
echo "xDebug [Stop | Start | Status] in the ${PHP_FPM_CONTAINER} container."
|
||||||
echo "xDebug must have already been installed."
|
echo "xDebug must have already been installed."
|
||||||
echo "Usage:"
|
echo "Usage:"
|
||||||
echo " .php-fpm/xdebug stop|start|status"
|
echo " .php-fpm/xdebug.sh 73|74 stop|start|status"
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
# NOTE: At the moment, this has only been confirmed to work with PHP 7
|
# NOTE: At the moment, this has only been confirmed to work with PHP 7
|
||||||
|
|
||||||
PHP_VERSION=$1 # Without dot
|
PHP_VERSION=$2 # Without dot
|
||||||
|
|
||||||
# Grab full name of workspace container
|
# Grab full name of workspace container
|
||||||
WORKSPACE_CONTAINER=$(docker ps | grep workspace${PHP_VERSION} | awk '{print $1}')
|
WORKSPACE_CONTAINER=$(docker ps | grep workspace${PHP_VERSION} | awk '{print $1}')
|
||||||
|
|
||||||
|
if [[ -z "${WORKSPACE_CONTAINER}" ]]; then
|
||||||
|
echo "Unable to find workspace container: workspace${PHP_VERSION}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Grab OS type
|
# Grab OS type
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
@ -81,7 +85,7 @@ xdebug_stop ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case $@ in
|
case $1 in
|
||||||
stop|STOP)
|
stop|STOP)
|
||||||
xdebug_stop
|
xdebug_stop
|
||||||
;;
|
;;
|
||||||
|
15
get-composer-auth.sh
Executable file
15
get-composer-auth.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
FILE=${HOME}/.composer/auth.json
|
||||||
|
|
||||||
|
if [[ -f "${FILE}" ]]; then
|
||||||
|
if [[ ! -z "$(cat $FILE | grep github)" ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Get token: https://github.com/settings/tokens/new?scopes=repo&description=Composer"
|
||||||
|
|
||||||
|
# user="USER INPUT"
|
||||||
|
read -p "Enter token: " TOKEN
|
||||||
|
|
||||||
|
composer config -g github-oauth.github.com ${TOKEN}
|
6
uncreate-symlinks.sh
Executable file
6
uncreate-symlinks.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
rm ${HOME}/start-xdebug.sh
|
||||||
|
rm ${HOME}/quit-xdebug.sh
|
||||||
|
rm ${HOME}/restart-nginx.sh
|
||||||
|
rm ${HOME}/mysql.sh
|
||||||
|
rm ${HOME}/enter-to-workspace.sh
|
Reference in New Issue
Block a user