This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch docker
in repository https://gitbox.apache.org/repos/asf/turbine-archetypes.git

commit 2ea3eb50e310f38a355596adea0c4063a77b1154
Author: Georg Kallidis <[email protected]>
AuthorDate: Mon Nov 26 16:47:44 2018 +0100

    Update docu, fix app Dockerfile/docker-compose, add docker parameter
---
 README.md                                          | 11 ++++++
 .../META-INF/maven/archetype-metadata.xml          |  5 ++-
 .../docker-resources/app/Dockerfile                | 29 +++++----------
 .../docker-resources/docker-compose.yml            |  3 +-
 .../docker-resources/docker-info.md                | 41 ++++++++++++++++------
 src/main/resources/archetype-resources/pom.xml     | 13 ++++---
 .../resources/projects/first/archetype.properties  |  1 +
 7 files changed, 62 insertions(+), 41 deletions(-)

diff --git a/README.md b/README.md
index d05d8bc..2755d40 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,23 @@ These instructions will get you a copy of the project up and 
running on your loc
 
 ### Prerequisites
 
+#### Host system installation
 * Java 8 JDK or later 
 * [MySQl](https://www.mysql.com/) - Database Server
 * [Maven](https://maven.apache.org/) - Dependency Management
 
 You should have Java 8 or later installed.  The archetype sets up a new 
application using MySQL as the default database store.  However, you can adjust 
this to use any database supported by Apache Torque 4.0. Therefore, you should 
be at least have a database instance where you have access rights to create a 
new database schema and populate it with the tables the application generates.  
Finally, this is a maven archetype, so of course you should install a local 
version of Maven (tested wi [...]
 
+#### Docker (alpha/experimental)
+
+Use docker to rapidly start development without Mysql installing on your local 
machine. It requires Java 8 and Maven in the hosting system (see above) and 
additionally
+
+* Docker version > 17 (Docker-Desktopm Windows)
+
+To install the Docker Archetype into the local repository, run
+
+* Run mvn clean install -Pdocker
+
 
 ### Installing
 
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml 
b/src/main/resources/META-INF/maven/archetype-metadata.xml
index 5b4c2dd..773abed 100644
--- a/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -54,9 +54,12 @@
     <requiredProperty key="turbine_database_password">
       <defaultValue>db_password</defaultValue>
     </requiredProperty>
-        <requiredProperty key="app_volume_local_repo">
+       <requiredProperty key="app_volume_local_repo">
       <defaultValue>${settings.localRepository}</defaultValue>
     </requiredProperty>
+       <requiredProperty key="docker">
+      <defaultValue>false</defaultValue>
+    </requiredProperty>
   </requiredProperties>
   <fileSets>
     <fileSet filtered="true" packaged="true">
diff --git 
a/src/main/resources/archetype-resources/docker-resources/app/Dockerfile 
b/src/main/resources/archetype-resources/docker-resources/app/Dockerfile
index 14cbcd4..2905c59 100644
--- a/src/main/resources/archetype-resources/docker-resources/app/Dockerfile
+++ b/src/main/resources/archetype-resources/docker-resources/app/Dockerfile
@@ -1,30 +1,17 @@
-FROM maven:3-jdk-8
+FROM maven:3-jdk-8 
 
-ENV APP_ROOT /myapp
+# cft hub.docker.com/r/library/maven
+ADD ./docker-resources/app/settings.xml /usr/share/maven/ref/settings.xml
 
 # Set our working directory inside the image
 
-RUN mkdir /myapp
+ADD pom.xml /myapp/pom.xml
+ADD src/ /myapp/src/
 
 WORKDIR /myapp
 
-# cft hub.docker.com/r/library/maven
-COPY ./docker-resources/app/settings.xml /usr/share/maven/ref/
-
-COPY pom.xml /myapp/pom.xml
-COPY src/main/torque-schema/ /myapp/src/main/torque-schema/
-COPY src/main/webapp/ /myapp/src/main/webapp/
-
-# builds app and runs commands connecting to mysql port 13306
-# CMD ["mvn clean install"] 
-# RUN mvn clean install & sleep 10
-
-# copy generated target et al.
-COPY . /myapp/
-
-RUN sleep 5
+# build app outside docker, if you use snapshots
+# RUN mvn -f /myapp/pom.xml clean package
 
 # do this not in build
-#  mvn jetty:run
-
-
+#  mvn jetty:run
\ No newline at end of file
diff --git 
a/src/main/resources/archetype-resources/docker-resources/docker-compose.yml 
b/src/main/resources/archetype-resources/docker-resources/docker-compose.yml
index d5a84e1..65c24ce 100644
--- a/src/main/resources/archetype-resources/docker-resources/docker-compose.yml
+++ b/src/main/resources/archetype-resources/docker-resources/docker-compose.yml
@@ -9,8 +9,7 @@ services:
         dockerfile: ./docker-resources/app/Dockerfile
     # optional environment variable configuration for app
     # this runs the app server in the container
-    #command: mvn package jetty:run -Pdocker
-    command: mvn jetty:run
+    command: mvn clean package jetty:run -Pdocker
     ports:
       - "8081:8081"
       - "8080:8080"
diff --git 
a/src/main/resources/archetype-resources/docker-resources/docker-info.md 
b/src/main/resources/archetype-resources/docker-resources/docker-info.md
index c1b6239..297455c 100644
--- a/src/main/resources/archetype-resources/docker-resources/docker-info.md
+++ b/src/main/resources/archetype-resources/docker-resources/docker-info.md
@@ -14,13 +14,19 @@ Optional Cleanup
 ``` 
 docker-compose down
 docker-compose down -v
-docker system prune
+
 docker volume rm $(docker volume ls -qf dangling=true)
+docker system prune
 ``` 
 
 Build Services
 ``` 
  docker-compose build --no-cache --build-arg DB_CONTEXT=./docker-resources/db
+ 
+ // build only app
+ // docker-compose build --no-cache app
+ // docker-compose build --no-cache --build-arg 
DB_CONTEXT=./docker-resources/db db
+ 
 ``` 
 DB_CONTEXT is set to allow starting the db container standalone (in folder db, 
e.g. with docker build --tag my-db .) to test it.
 
@@ -29,29 +35,37 @@ Builds db, populates it with (hard coded data and prepares 
application.
 Start all services
 ``` 
 docker-compose up
+
+// docker-compose up db
 ``` 
 Jetty is run and exposes the webapp to http://localhost:80801/app
 
+#Test Services: App, Database
 
-#Test Database
-
-## start service
+## Start service
 
 ```
-docker-compose up db
-docker-compose run db /bin/sh --build-arg DB_CONTEXT=./docker-resources/db
+docker-compose run --rm db /bin/sh --build-arg DB_CONTEXT=./docker-resources/db
 ```
-Extract data
+Extract data in db-Service
 ```
- docker-compose exec db mysql -u root --password=... -e "show databases;" 
--build-arg DB_CONTEXT=./docker-resources/db
- docker-compose exec db sh -c 'exec mysqldump --all-databases -uroot -p...' 
--build-arg DB_CONTEXT=./docker-resources/db > dump.sql
  // check mysql in service container db
-# mysql -u root -h db -P 3306 -p
+ // # mysql -u root -h db -P 3306 -p
+ // docker-compose exec db mysql -u root --password=... -e "show databases;" 
--build-arg DB_CONTEXT=./docker-resources/db
+ // docker-compose exec db sh -c 'exec mysqldump --all-databases -uroot -p...' 
--build-arg DB_CONTEXT=./docker-resources/db > dump.sql
 
 ```
+- Service app
+```
+docker-compose up app 
+docker-compose run --rm app /bin/sh 
+// ls -la /myapp // should list pom.xml ...
+```
 
 # Windows
 
+## Powershell
+
 - Replace backslashes to slashes in docker-compose.yml in localRepository
 
 - check COMPOSE_CONVERT_WINDOWS_PATHS, 
https://docs.docker.com/compose/reference/envvars/#compose_convert_windows_paths
@@ -66,6 +80,13 @@ Extract data
        1. docker rm $(docker ps -a -q)
        2. Stop the Docker on your machine & restart it.
 
+## Windows Subsystem for Linux (WSL)
+
+- Check file permissions of archetype generated files (chmod -R a+rw 
docker-resources, chmod -R a+rw src .
+
+- 
https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly
+
+
 
 Resetting / Preparation (optional)
 
diff --git a/src/main/resources/archetype-resources/pom.xml 
b/src/main/resources/archetype-resources/pom.xml
index c8aea05..e95882f 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -453,14 +453,13 @@ under the License.
                 <profile>
             <id>docker</id>
             <activation>
-              <property>
-                <name>docker</name>
-              </property>
-             </activation>
-             <properties>
+                <activeByDefault>${docker}</activeByDefault>
+            </activation>
+            <properties>
                 
<turbine_database_url>jdbc:mysql://db:3306/</turbine_database_url>
-                               <!-- to provide e.g. local snapshot builds -->
-                               
<app_volume_local_repo>#var("settings.localRepository")</app_volume_local_repo>
+                <!-- to provide e.g. local snapshot builds -->
+                
<app_volume_local_repo>#var("settings.localRepository")</app_volume_local_repo>
+                <docker>true</docker>
             </properties>
         </profile>
     </profiles>
diff --git a/src/test/resources/projects/first/archetype.properties 
b/src/test/resources/projects/first/archetype.properties
index 1d7a742..a6065d1 100644
--- a/src/test/resources/projects/first/archetype.properties
+++ b/src/test/resources/projects/first/archetype.properties
@@ -13,3 +13,4 @@ turbine_database_url=${turbine_database_url}
 turbine_database_user=db_user
 turbine_database_password=db_password
 app_volume_local_repo=${app_volume_local_repo}
+docker=${docker}

Reply via email to