lot of stuff on this commit, no commited docker environement since a while

This commit is contained in:
Bachir Soussi Chiadmi 2022-07-26 23:08:23 +02:00
parent b60aa7fae1
commit c610a39441
15 changed files with 193 additions and 55 deletions

1
.env
View File

@ -4,6 +4,7 @@ PROJECT_ROOT=./public_html
LEGACY_ROOT=./public_html_legacy
LOG_ROOT=./log
SOLR_CORES=./solr_cores
SOLR_DATA=./solr_data
DB_IMPORTE_FILE_D8=./ressources/materio_d8.sql
DB_IMPORTE_FILE_D7=./ressources/materio_d7.sql

View File

@ -2,7 +2,7 @@ server {
listen 80 default_server;
root /var/www/html/d8.materio.com/public_html/web;
index index.html index.php;
server_name *.materio.com;
server_name *.materio.com materio.sish.me;
charset utf-8;
@ -43,9 +43,9 @@ server {
gzip_static on;
## PWA serviceworker support.
location ~ ^/pwa/[0-9a-z]+/serviceworker.js {
try_files $uri /index.php?$query_string;
}
# location ~ ^/pwa/[0-9a-z]+/serviceworker.js {
# try_files $uri /index.php?$query_string;
# }
## PWA manifest support.
location ~ /manifest.json {

View File

@ -7,6 +7,8 @@ RUN apk update && apk --no-cache add shadow && \
RUN find / -group 1000 -exec chgrp -h node {} \;
RUN find / -user 1000 -exec chown -h node {} \;
RUN apk add --no-cache openssh sshpass
ARG USER_UID
ARG USER_UNAME
ARG USER_GID
@ -23,6 +25,8 @@ USER ${USER_UNAME}
COPY ./bashrc /home/${USER_UNAME}/.bashrc
COPY ./inputrc /home/${USER_UNAME}/.inputrc
COPY ./client-entrypoint.sh /usr/local/bin
USER root
RUN chmod +x /usr/local/bin/client-entrypoint.sh

View File

@ -31,12 +31,13 @@ RUN export COMPOSER_HOME=/usr/local/composer && \
-L -o /usr/local/bin/drush && \
chmod +x /usr/local/bin/drush
RUN apt-get install -y curl && \
curl -sL https://deb.nodesource.com/setup_11.x | bash - && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && \
apt-get install -y nodejs yarn
# todo this is not building any more, do i really need this ? (22-10-2021)
# RUN apt-get install -y curl && \
# curl -sL https://deb.nodesource.com/setup_11.x | bash - && \
# curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
# echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
# apt-get update && \
# apt-get install -y nodejs yarn
RUN apt-get install -y rsyslog
COPY ./rsyslog-drupal.conf /etc/rsyslog.d/drupal.conf

View File

@ -1,16 +1,17 @@
FROM php:7.3-fpm
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
mysql-client \
default-mysql-client \
zip \
net-tools iproute2 \
libzip-dev && \
cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini && \
# docker-php-ext-install -j$(nproc) iconv && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \
apt-get install -y imagemagick libmagickwand-dev && \
pecl install imagick && docker-php-ext-enable imagick && \
docker-php-ext-install -j$(nproc) gd && \
@ -19,7 +20,7 @@ RUN apt-get update && apt-get install -y \
docker-php-ext-install bcmath && \
apt-get install -y git vim && \
pecl install redis-4.3.0 && \
pecl install xdebug-2.7.0 && \
pecl install xdebug-3.1.3 && \
docker-php-ext-enable redis xdebug
RUN export COMPOSER_HOME=/usr/local/composer && \
@ -32,12 +33,13 @@ RUN export COMPOSER_HOME=/usr/local/composer && \
-L -o /usr/local/bin/drush && \
chmod +x /usr/local/bin/drush
RUN apt-get install -y curl && \
curl -sL https://deb.nodesource.com/setup_11.x | bash - && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && \
apt-get install -y nodejs yarn
# todo this is not building any more, do i really need this ? (22-10-2021)
# RUN apt-get install -y curl && \
# curl -sL https://deb.nodesource.com/setup_11.x | bash - && \
# curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
# echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
# apt-get update && \
# apt-get install -y nodejs yarn
RUN apt-get install -y rsyslog
COPY ./rsyslog-drupal.conf /etc/rsyslog.d/drupal.conf
@ -46,8 +48,6 @@ COPY ./rsyslog-drupal.conf /etc/rsyslog.d/drupal.conf
COPY ./php-custom.ini /usr/local/etc/php/conf.d/php-custom.ini
# COPY ./php-fpm-custom.conf /usr/local/etc/php-fpm.d/php-fpm-custom.conf
# COPY ./bashrc /root/.bashrc
# COPY ./inputrc /root/.inputrc
ARG USER_UID
ARG USER_UNAME
@ -57,6 +57,7 @@ ARG USER_GNAME
RUN if getent group ${USER_GNAME} ; then groupdel ${USER_GNAME}; fi &&\
groupadd -g ${USER_GID} ${USER_GNAME} &&\
useradd -l -u ${USER_UID} -g ${USER_GNAME} ${USER_UNAME} &&\
echo ${USER_UNAME}:${USER_UNAME} | chpasswd &&\
install -d -m 0755 -o ${USER_UNAME} -g ${USER_GNAME} /home/${USER_UNAME} &&\
chown --changes --silent --no-dereference --recursive \
--from=33:33 ${USER_UID}:${USER_GID} \
@ -68,4 +69,23 @@ RUN if getent group ${USER_GNAME} ; then groupdel ${USER_GNAME}; fi &&\
COPY ./bashrc /home/${USER_UNAME}/.bashrc
COPY ./inputrc /home/${USER_UNAME}/.inputrc
USER ${USER_UNAME}
# https://dev.to/s1ntaxe770r/how-to-setup-ssh-within-a-docker-container-i5i
RUN apt-get install -y openssh-server openssh-client
# RUN service ssh enable
RUN service ssh start
# as sshd will be launchd as ${USER_UNAME}
RUN chown -R ${USER_UNAME} /etc/ssh
EXPOSE 22
# CMD ["/usr/sbin/sshd","-D"]
# https://stackoverflow.com/questions/36964652/ssh-in-docker-container-causes-http-404
# use \n to make the content into multiple lines
RUN printf "whoami\nphp-fpm -D\n/usr/sbin/sshd -D" >> /start.sh
RUN chmod +x /start.sh
CMD ["/start.sh"]
# USER ${USER_UNAME}

View File

@ -1,4 +1,4 @@
PS1='\e[36m\e[1mPHP-7.3\e[0m:\e[90m\w\e[0m\n$ '
PS1='\e[36m\e[1mPHP-7.4\e[0m:\e[90m\w\e[0m\n$ '
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'

3
Docker/redis/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM redis:4
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

2
Docker/redis/redis.conf Normal file
View File

@ -0,0 +1,2 @@
maxmemory 1gb
maxmemory-policy allkeys-lru

View File

@ -1,3 +1,3 @@
FROM solr:8
FROM solr:8.10
# COPY --chown=solr:solr ./server /opt/solr/server/solr/

View File

@ -7,6 +7,8 @@ USER_UNAME := $(shell id -un)
USER_GID := $(shell id -g)
USER_GNAME := $(shell id -gn)
DATE_NOW := $(shell date '+%Y-%m-%d_%H%M%S')
export USER_UID
export USER_UNAME
export USER_GID
@ -18,6 +20,28 @@ build:
buildnc:
docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
buildsolrnc:
docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) solr-new
buildphp:
docker-compose build --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) php
buildphpnc:
docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) php
buildnginx:
docker-compose build --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) nginx
buildnginxnc:
docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) nginx
buildnpm:
docker-compose build --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) npm
buildnpmnc:
docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) npm
up:
docker-compose up -d
@ -30,26 +54,53 @@ ps:
logs:
docker-compose logs -f
logs_redis:
docker-compose logs -f redis
down:
docker-compose down
restart_solr:
docker-compose restart solr-new
restart_redis:
docker-compose restart redis
restart_php:
docker-compose restart php
restart_npm :
docker-compose restart npm
exec_php:
docker exec -it materiod8_php_1 bash
docker exec -it materiod8-php-1 bash
exec_nginx:
docker exec -it materiod8-nginx-1 bash
exec_npm:
docker exec -it materiod8_npm_1 sh
docker exec -it materiod8-npm-1 sh
exec_mysql:
docker exec -it materiod8_mysql_1 bash
docker exec -it materiod8-mysql-1 bash
exec_solr:
docker exec -it materiod8_solr-new_1 bash
docker exec -it materiod8-solr-new-1 bash
exec_solrlegacy:
docker exec -it materiod8-solr-legacy-1 bash
phplegacy:
docker exec -it materiod8_php-legacy_1 bash
docker exec -it materiod8-php-legacy-1 bash
redis:
docker exec -it materiod8_redis_1 bash
docker exec -it materiod8-redis-1 bash
update_solr_conf:
bin/update_solr_config.sh
bin/update_solr_config.sh
dump_d8_db:
docker exec materiod8-mysql-1 sh -c 'exec mysqldump -uroot -pmaterio materio_d8' > ./ressources/materio-d8-$(DATE_NOW)-local.sql
sish:
ssh -p 2222 -R materio:80:dev:8890 CT-sish.me

View File

@ -1,8 +1,11 @@
#! /bin/bash
docker exec -i materiod8_php_1 drush solr-gsc database_search_autocomplete config.zip
docker exec -i materiod8-php-1 drush cdel search_api_solr.solr_field_type.text_edgestring_ascii_und_6_0_0
docker exec -i materiod8-php-1 drush cdel search_api_solr.solr_field_type.text_string_ascii_und_6_0_0
docker exec -i materiod8-php-1 drush dre materio_sapi
docker exec -i materiod8-php-1 drush solr-gsc database_search_autocomplete config.zip
mkdir ressources/solr/
mv public_html/web/config.zip ressources/solr/
unzip -o ressources/solr/config.zip -d solr_cores/materio/conf
unzip -o ressources/solr/config.zip -d solr_cores/materio_autocomplete/conf
unzip -o ressources/solr/config.zip -d var_solr/data/materio/conf
unzip -o ressources/solr/config.zip -d var_solr/data/materio_autocomplete/conf
docker-compose restart solr-new

View File

@ -35,9 +35,10 @@ services:
redis:
image: redis:4
command: ["redis-server", "--appendonly", "yes"]
command: redis-server /usr/local/etc/redis.conf
volumes:
- redis-data:/data
- ./Docker/redis/redis.conf:/usr/local/etc/redis.conf
networks:
- redis
ports:
@ -45,9 +46,10 @@ services:
redis-legacy:
image: redis:3
command: ["redis-server", "--appendonly", "yes"]
command: redis-server /usr/local/etc/redis.conf
volumes:
- redis-legacy-data:/data
- ./Docker/redis/redis.conf:/usr/local/etc/redis.conf
networks:
- redis
ports:
@ -55,11 +57,17 @@ services:
solr-new:
build: ./Docker/solr/
# user: ${USER_UID}:${USER_GID}
environment:
- SOLR_HOME=/opt/solr/server/solr
- SOLR_HOME=/var/solr
volumes:
- "${SOLR_CORES}:/opt/solr/server/solr"
# - solr-cores:/opt/solr/server/solr
- ./var_solr:/var/solr
# - solr-data: /var/solr
# - "${SOLR_CORES}:/var/solr/data"
# - "${SOLR_DATA}:/var/solr"
# - "${SOLR_CORES}:/opt/solr/server/solr"
command:
- solr-precreate
networks:
- solr
ports:
@ -80,6 +88,7 @@ services:
expose:
- 9000
- 9001
- 22
user: ${USER_UID}:${USER_GID}
volumes:
- php-user-data:/home/${USER_UNAME}
@ -93,9 +102,11 @@ services:
- redis
- server
- solr
# extra_hosts:
# - "host.docker.internal:192.168.144.4"
# - "testhost:192.168.0.21"
# for xdebug
# https://github.com/docker/for-linux/issues/264#issuecomment-965465879
extra_hosts:
- host.docker.internal:host-gateway
# mem_limit: 512m
depends_on:
- mysql
- mysql-legacy
@ -167,9 +178,14 @@ services:
volumes:
- "${PROJECT_ROOT}:/app"
- npm-user-data:/home/${USER_UNAME}
ports:
- 8788:8788
# ports:
# - 8788:8788
working_dir: "/app"
networks:
- server
environment:
- DRUPAL_ROOT=/var/www/html/d8.materio.com/public_html
- USER_UNAME=${USER_UNAME}
volumes:
php-user-data:
@ -179,7 +195,7 @@ volumes:
redis-data:
redis-legacy-data:
solr-cores-legacy:
solr-cores:
# solr-cores:
npm-user-data:
networks:

@ -1 +1 @@
Subproject commit 2b67b22ce5c29948d9f2caaedd30ee6b15900fb4
Subproject commit 44df557f291754d513c4ad73879ef34af925bd68

View File

@ -1,13 +1,50 @@
[xdebug]
xdebug.remote_enable=1
; xdebug.remote_enable=1
xdebug.mode=debug
;Should use host.docker.internal but not working on linux
xdebug.remote_host=172.20.0.1
; xdebug.remote_host=172.20.0.1
; Replaced by xdebug.client_host.
xdebug.client_host=172.20.0.1
;Not working on docker context
xdebug.remote_connect_back=0
; xdebug.remote_connect_back=0
; Replaced by xdebug.discover_client_host.
xdebug.discover_client_host=0
;9000 is already bound by php-fpm
xdebug.remote_port=9001
; xdebug.remote_port=9001
; xdebug.remote_port #
; Replaced by xdebug.client_port.
; The default value has also changed from 9000 to 9003.
xdebug.client_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
; xdebug.remote_mode=req
; xdebug.remote_mode #
; For the req value (the original default), use xdebug.mode=debug with xdebug.start_with_request=trigger. If the original xdebug.remote_autostart behaviour is necessary, use xdebug.start_with_request=yes instead of trigger.
; For the jit value, use xdebug.mode=debug and xdebug.start_upon_error=yes.
; xdebug.remote_autostart=true
; Use xdebug.mode=debug with xdebug.start_with_request=yes
xdebug.start_with_request=yes
; ?=XDEBUG_SESSION_START=1
;Log file is mounted on volume so you can follow it
xdebug.remote_log=/var/log/xdebug-error.log
; xdebug.remote_log=/var/log/xdebug-error.log
; Replaced by xdebug.log, which also includes log messages beyond Step Debugging.
xdebug.log=/var/log/xdebug-error.log
; xdebug.profiler_enable=0
; xdebug.profiler_enable_trigger=1
; Use xdebug.mode=profile with xdebug.start_with_request=trigger.
; xdebug.profiler_output_dir=/var/log/
; Use the generic xdebug.output_dir setting.
; Example: http://localhost:8080/test?XDEBUG_PROFILE=1

@ -1 +1 @@
Subproject commit 82bc5b7e78529f3e26d5684b061c2aaf8ee1f552
Subproject commit afd61c4690f97d99034b8e394bf33da5c9780d39