From feac8563554d7100ca932b912510bf7f77f018d9 Mon Sep 17 00:00:00 2001 From: Alex Prokopenko Date: Fri, 2 Oct 2020 22:30:46 +0300 Subject: [PATCH] + locales into db container --- bash/mysql.sh | 2 +- docker-compose.yml.example | 34 ++------------ dockerfiles/db/Dockerfile | 9 ++++ dockerfiles/workspace/xdebug.sh | 101 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 32 deletions(-) create mode 100644 dockerfiles/db/Dockerfile create mode 100755 dockerfiles/workspace/xdebug.sh diff --git a/bash/mysql.sh b/bash/mysql.sh index b81766d..aeed2ed 100755 --- a/bash/mysql.sh +++ b/bash/mysql.sh @@ -1,3 +1,3 @@ #!/bin/bash cd $HOME/structure -docker-compose exec db mysql -u root -p123456 +docker-compose exec db bash -c 'LANG=ru_RU.UTF-8 mysql -u root -p123456' diff --git a/docker-compose.yml.example b/docker-compose.yml.example index a4fdb5b..ab49c2f 100755 --- a/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -87,36 +87,6 @@ services: - ${PROJECTS_DIR}:/var/www extra_hosts: - "dockerhost:${DOCKER_HOST_IP}" - workspace_alex2911: - build: - context: ./dockerfiles/workspace - args: - - PHP_VERSION=${WORKSPACE_PHP_VERSION} - - PUID=${WORKSPACE_PUID} - - PGID=${WORKSPACE_PGID} - - TZ=${WORKSPACE_TIMEZONE} - - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} - - COMPOSER_AUTH=${WORKSPACE_COMPOSER_AUTH} - - COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST} - - INSTALL_WP_CLI=${WORKSPACE_INSTALL_WP_CLI} - - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - - INSTALL_SSH=${WORKSPACE_INSTALL_SSH} - - SSH_PASSPHRAZE=${WORKSPACE_SSH_PASSPHRAZE} - - INSTALL_FSWATCH=${WORKSPACE_INSTALL_FSWATCH} - - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - - NODE_VERSION=${WORKSPACE_NODE_VERSION} - - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY} - - INSTALL_YARN=${WORKSPACE_INSTALL_YARN} - - YARN_VERSION=${WORKSPACE_YARN_VERSION} - - INSTALL_GULP=${WORKSPACE_INSTALL_GULP} - - INSTALL_MYSQL_CLIENT=${WORKSPACE_INSTALL_MYSQL_CLIENT} - - INSTALL_PING=${WORKSPACE_INSTALL_PING} - - INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON} - restart: always - volumes: - - ${PROJECTS_DIR}:/var/www - extra_hosts: - - "dockerhost:${DOCKER_HOST_IP}" sphinx: build: ./dockerfiles/sphinx restart: always @@ -130,13 +100,15 @@ services: expose: - "9306" db: - image: mariadb + build: ./dockerfiles/db restart: always environment: MYSQL_ROOT_PASSWORD: 123456 volumes: - database:/var/lib/mysql - ./hostfiles:/hostfiles + - ./config/mariadb:/etc/mysql/conf.d + - ./log/mariadb:/var/log/mariadb ports: - "3306:3306" phpmyadmin: diff --git a/dockerfiles/db/Dockerfile b/dockerfiles/db/Dockerfile new file mode 100644 index 0000000..fd9f91f --- /dev/null +++ b/dockerfiles/db/Dockerfile @@ -0,0 +1,9 @@ +FROM mariadb + +RUN apt update && apt install -y locales + +RUN sed -i 's/# ru_RU.UTF-8/ru_RU.UTF-8/' /etc/locale.gen + +RUN locale-gen + +RUN echo "export LANG=ru_RU.UTF-8" > /root/.bashrc \ No newline at end of file diff --git a/dockerfiles/workspace/xdebug.sh b/dockerfiles/workspace/xdebug.sh new file mode 100755 index 0000000..bad1412 --- /dev/null +++ b/dockerfiles/workspace/xdebug.sh @@ -0,0 +1,101 @@ +#! /bin/bash + +# NOTE: At the moment, this has only been confirmed to work with PHP 7 + + +# Grab full name of workspace container +WORKSPACE_CONTAINER=$(docker ps | grep workspace | awk '{print $1}') + + +# Grab OS type +if [[ "$(uname)" == "Darwin" ]]; then + OS_TYPE="OSX" +else + OS_TYPE=$(expr substr $(uname -s) 1 5) +fi + + +xdebug_status () +{ + echo 'xDebug status' + + # If running on Windows, need to prepend with winpty :( + if [[ $OS_TYPE == "MINGW" ]]; then + winpty docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' + + else + docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' + fi + +} + + +xdebug_start () +{ + echo 'Start xDebug' + + # And uncomment line with xdebug extension, thus enabling it + ON_CMD="sed -i 's/^;zend_extension=/zend_extension=/g' \ + /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini" + + + # If running on Windows, need to prepend with winpty :( + if [[ $OS_TYPE == "MINGW" ]]; then + winpty docker exec -it $WORKSPACE_CONTAINER bash -c "${ON_CMD}" + docker restart $WORKSPACE_CONTAINER + winpty docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' + + else + docker exec -it $WORKSPACE_CONTAINER bash -c "${ON_CMD}" + docker restart $WORKSPACE_CONTAINER + docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' + fi +} + + +xdebug_stop () +{ + echo 'Stop xDebug' + + # Comment out xdebug extension line + OFF_CMD="sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini" + + + # If running on Windows, need to prepend with winpty :( + if [[ $OS_TYPE == "MINGW" ]]; then + # This is the equivalent of: + # winpty docker exec -it laradock_php-fpm_1 bash -c 'bla bla bla' + # Thanks to @michaelarnauts at https://github.com/docker/compose/issues/593 + winpty docker exec -it $WORKSPACE_CONTAINER bash -c "${OFF_CMD}" + docker restart $WORKSPACE_CONTAINER + #docker-compose restart php-fpm + winpty docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' + + else + docker exec -it $WORKSPACE_CONTAINER bash -c "${OFF_CMD}" + # docker-compose restart php-fpm + docker restart $WORKSPACE_CONTAINER + docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' + fi +} + + +case $@ in + stop|STOP) + xdebug_stop + ;; + start|START) + xdebug_start + ;; + status|STATUS) + xdebug_status + ;; + *) + echo "xDebug [Stop | Start | Status] in the ${WORKSPACE_CONTAINER} container." + echo "xDebug must have already been installed." + echo "Usage:" + echo " .php-fpm/xdebug stop|start|status" + +esac + +exit 1