This is an automated email from the ASF dual-hosted git repository. gk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/turbine-archetypes.git
commit bb2b241f8278baea7406988e5b0e5b2525171541 Author: Georg Kallidis <[email protected]> AuthorDate: Mon Oct 18 15:34:34 2021 +0200 downgrad mysql 8.0.27 (not released), add tls options to my.cnf, cleanup docker-compose.yml --- .../archetype-resources/docs/DOCKER-README.md | 26 +++++++++------- src/main/resources/archetype-resources/pom.xml | 4 +-- .../src/main/docker-resources/db/Dockerfile | 35 +++++++++++----------- .../src/main/docker-resources/db/mysql/conf/my.cnf | 7 ++--- .../src/main/docker-resources/docker-compose.yml | 23 ++++++-------- 5 files changed, 47 insertions(+), 48 deletions(-) diff --git a/src/main/resources/archetype-resources/docs/DOCKER-README.md b/src/main/resources/archetype-resources/docs/DOCKER-README.md index bd9ae75..4610551 100644 --- a/src/main/resources/archetype-resources/docs/DOCKER-README.md +++ b/src/main/resources/archetype-resources/docs/DOCKER-README.md @@ -27,25 +27,31 @@ IF you have already generated this with mvn archetype:generate within the same h # Installation (running the app) -- Change into directory target/docker-resources andf check the file docker-compose.yml, e.g. with +- Change into directory target/docker-resources and check the file docker-compose.yml, e.g. with + + cd <project>/target/docker-resources + docker compose config -```sh -cd <project>/target/docker-resources -docker compose config -``` Important: Check that /m2repo is properly mapped to your local maven repository in docker-compose.yml! +### Note + +If running as integrationtest, you find the docker files in target/test-classes/projects/first/project/integrationtest/target/docker-resources. + - Build and start the services -```sh -docker compose build --no-cache -docker compose up --detach -``` + docker compose build --no-cache + docker compose up --detach + + +You might check the process with + + docker-compose logs -f app First time building might take a couple of minutes. - - Now you can launch (in another terminal) your new Turbine application by default [http://localhost:8081/app] + - Now you can launch (in another terminal) your new Turbine application by default [http://localhost:8081/app] (http://localhost:8081/app) ### Note diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml index aed6564..d7b822a 100644 --- a/src/main/resources/archetype-resources/pom.xml +++ b/src/main/resources/archetype-resources/pom.xml @@ -396,10 +396,10 @@ under the License. <maven.compile.target>1.8</maven.compile.target> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <log4j2.version>2.14.1</log4j2.version> - <mysql.version>8.0.27</mysql.version> + <mysql.version>8.0.26</mysql.version> <fulcrum.json>2.0.1</fulcrum.json> <fulcrum.intake>2.0.0</fulcrum.intake> - <fulcrum.security>2.0.1-SNAPSHOT</fulcrum.security> + <fulcrum.security>2.1.0</fulcrum.security> <fulcrum.yaafi>1.0.8</fulcrum.yaafi> <fulcrum.cache>2.0.0</fulcrum.cache> <fulcrum.testcontainer>1.0.9</fulcrum.testcontainer> diff --git a/src/main/resources/archetype-resources/src/main/docker-resources/db/Dockerfile b/src/main/resources/archetype-resources/src/main/docker-resources/db/Dockerfile index 7ccfc0f..760cacb 100644 --- a/src/main/resources/archetype-resources/src/main/docker-resources/db/Dockerfile +++ b/src/main/resources/archetype-resources/src/main/docker-resources/db/Dockerfile @@ -1,7 +1,7 @@ #using multi-stage # mariadb use docker-entrypoint -FROM mysql:latest as builder +FROM mysql:8.0.26 as builder # That file does the DB initialization but also runs mysql daemon, by removing the last line it will only init RUN ["/bin/sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin/docker-entrypoint.sh"] @@ -12,20 +12,30 @@ RUN ["/bin/sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin # docker run <image> /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options" ARG DB_CONTEXT -ARG MYSQL_DATABASE +ARG MYSQL_ROOT ARG MYSQL_ROOT_PASSWORD +ARG MYSQL_DATABASE ARG MYSQL_USER ARG MYSQL_PASSWORD +# required, to create +ENV DB_CONTEXT ${DB_CONTEXT} +ENV MYSQL_ROOT=${MYSQL_ROOT} +ENV MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + +ENV MYSQL_DATABASE=${MYSQL_DATABASE} +ENV MYSQL_USER=${MYSQL_USER} +ENV MYSQL_PASSWORD=${MYSQL_PASSWORD} +ENV MYSQL_HOST= + # mount in docker-compose -ADD #var("DB_CONTEXT:-.")/mysql/conf/my.cnf /etc/ -# mysql requires to be restricted -RUN chmod a-w /etc/my.cnf +#ADD #var("DB_CONTEXT:-.")/mysql/conf/my.cnf /etc/ # for logs -RUN mkdir -p /mysql/log -RUN chmod -R a+w /mysql +#RUN mkdir -p /mysql/log +#RUN chmod -R a+r /mysql/log +RUN chmod -R a-w /etc/mysql/conf.d COPY generated-sql/torque/mysql /generated-sql-init # dependent sql should be name sorted after init.sql @@ -35,17 +45,6 @@ RUN cat /generated-sql-init/*.sql > /docker-entrypoint-initdb.d/init.sql COPY data/sample-mysql-data /generated-sql-post-init RUN cat /generated-sql-post-init/*.sql > /docker-entrypoint-initdb.d/post_init.sql -# required, to create - -ENV DB_CONTEXT ${DB_CONTEXT} -ENV MYSQL_DATABASE ${MYSQL_DATABASE} -ENV MYSQL_ROOT=root -ENV MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - -ENV MYSQL_USER=${MYSQL_USER} -ENV MYSQL_PASSWORD=${MYSQL_PASSWORD} -ENV MYSQL_HOST= - # Need to change the datadir to something else that /var/lib/mysql because the parent docker file defines it as a volume. # https://docs.docker.com/engine/reference/builder/#volume : # Changing the volume from within the Dockerfile: If any build steps change the data within the volume after diff --git a/src/main/resources/archetype-resources/src/main/docker-resources/db/mysql/conf/my.cnf b/src/main/resources/archetype-resources/src/main/docker-resources/db/mysql/conf/my.cnf index 6eca3ac..ee4cb2c 100644 --- a/src/main/resources/archetype-resources/src/main/docker-resources/db/mysql/conf/my.cnf +++ b/src/main/resources/archetype-resources/src/main/docker-resources/db/mysql/conf/my.cnf @@ -2,12 +2,11 @@ # [mysqld] +tls_version=TLSv1.2,TLSv1.3 -# -# * Basic Settings -# +character_set_server=utf8mb4 +collation_server=utf8mb4_unicode_ci -character-set-server=utf8 # in mysql image VOLUME /var/lib/mysql and any changes to this directory # during build process might got lost after the build step is done diff --git a/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml b/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml index c5293be..aaad325 100644 --- a/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml +++ b/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml @@ -38,23 +38,19 @@ services: dockerfile: ./docker-resources/db/Dockerfile args: DB_CONTEXT: ./docker-resources/db - MYSQL_DATABASE: ${turbine_database_name} + MYSQL_ROOT: root MYSQL_ROOT_PASSWORD: changeit + MYSQL_DATABASE: ${turbine_database_name} MYSQL_USER: ${turbine_database_user} MYSQL_PASSWORD: ${turbine_database_password} - - environment: - MYSQL_DATABASE: ${turbine_database_name} - MYSQL_ROOT_PASSWORD: changeit - MYSQL_USER: ${turbine_database_user} - MYSQL_PASSWORD: ${turbine_database_password} - DB_CONTEXT: ./docker-resources/db + + # no environment needed here, only if using image in this file volumes: - - "./db/mysql/init:/docker-entrypoint-initdb.d" - - "./db/mysql/conf:/etc/mysql/conf.d" - - "./db/mysql/data:/data" - - "./db/mysql/log:/mysql/log" + - ./db/mysql/init:/docker-entrypoint-initdb.d + - ./db/mysql/conf:/etc/mysql/conf.d + - ./db/mysql/data:/data + - ./db/mysql/log:/mysql/log # default mysql persistent data - db_data_${turbine_database_name}:/var/lib/mysql:rw restart: always @@ -64,8 +60,7 @@ services: #networks: # - db - #command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci] - command: --default-authentication-plugin=mysql_native_password + command: [mysqld, --default-authentication-plugin=mysql_native_password] # this might work only for *nix, check with docker image inspect db volumes:
