arquillian / arquillian-cube

Control (docker, kubernetes, openshift) containers in your tests with ease!
http://arquillian.org/arquillian-cube/
120 stars 98 forks source link

conteinerless in docker doesn't work #541

Open adriano-fonseca opened 7 years ago

adriano-fonseca commented 7 years ago

I have some simple integrations tests running in this project. https://github.com/adriano-fonseca/PlayWithJEE

Using chameleon to run a managed wildfly everything runs nicelly. But, when I try to run an docker wildfly conteinerless through the wildfly-docker-image maven profile, I got the error "Containerless container should be built using a Dockerfile, and no templatePath property found for container". However, the Dockerfile really is on the right path. I think that could be something related to jersey-client. Down there on stacktrace it brings "javax.ws.rs.core.UriBuilder.resolveTemplate(Ljava/lang/String;Ljava/lang/Object;Z)Ljavax/ws/rs/core/UriBuilder"

Any help that I can provide or even futher informations, just let me know, thank you in adavanced.

docker version

Client: Version: 1.12.5 API version: 1.24 Go version: go1.6.4 Git commit: 7392c3b Built: Fri Dec 16 02:42:17 2016 OS/Arch: linux/amd64

Server: Version: 1.12.5 API version: 1.24 Go version: go1.6.4 Git commit: 7392c3b Built: Fri Dec 16 02:42:17 2016 OS/Arch: linux/amd64

Complete Stack

java.lang.IllegalArgumentException: Containerless container should be built using a Dockerfile, and no templatePath property found for container. at org.arquillian.cube.impl.containerless.ContainerlessDockerDeployableContainer.deploy(ContainerlessDockerDeployableContainer.java:103) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:161) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:128) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:271) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:127) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.container.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:95) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:80) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployment(ContainerDeployController.java:263) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java:239) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java:79) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:87) at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:201) at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:426) at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:54) at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:218) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:166) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

com.company.app.test.EjbTest Time elapsed: 2.08 sec <<< ERROR! java.lang.NoSuchMethodError: javax.ws.rs.core.UriBuilder.resolveTemplate(Ljava/lang/String;Ljava/lang/Object;Z)Ljavax/ws/rs/core/UriBuilder; at org.glassfish.jersey.client.JerseyWebTarget.resolveTemplate(JerseyWebTarget.java:244) at org.glassfish.jersey.client.JerseyWebTarget.resolveTemplate(JerseyWebTarget.java:235) at org.glassfish.jersey.client.JerseyWebTarget.resolveTemplate(JerseyWebTarget.java:59) at com.github.dockerjava.jaxrs.StopContainerCmdExec.execute(StopContainerCmdExec.java:23) at com.github.dockerjava.jaxrs.StopContainerCmdExec.execute(StopContainerCmdExec.java:12) at com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:23) at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35) at com.github.dockerjava.core.command.StopContainerCmdImpl.exec(StopContainerCmdImpl.java:63) at org.arquillian.cube.docker.impl.docker.DockerClientExecutor.stopContainer(DockerClientExecutor.java:501) at org.arquillian.cube.docker.impl.model.DockerCube.stop(DockerCube.java:161) at org.arquillian.cube.impl.client.CubeLifecycleController.stop(CubeLifecycleController.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.arquillian.cube.impl.containerless.ContainerlessDockerDeployableContainer.undeploy(ContainerlessDockerDeployableContainer.java:210) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$4.call(ContainerDeployController.java:205) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$4.call(ContainerDeployController.java:185) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:271) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.undeploy(ContainerDeployController.java:184) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$2.perform(ContainerDeployController.java:119) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$2.perform(ContainerDeployController.java:110) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployment(ContainerDeployController.java:263) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployedDeployment(ContainerDeployController.java:249) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.undeployManaged(ContainerDeployController.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:108) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.afterClass(EventTestRunnerAdaptor.java:94) at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:223) at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:426) at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:54) at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:218) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:166) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

lordofthejars commented 7 years ago

Yes it seems this problem you mention, but do you need containerless in this case? Usually containerless is for applications written in other language rather than Java or for CLI applications (Spring Boot for example) that you want to deploy a microdeployment.

I think that maybe if your test does not need to deploy anything, since Docker image already contains everything then you might use Arquillian Standalone. Something like https://github.com/lordofthejars/starwars/tree/master/container-test

adriano-fonseca commented 7 years ago

Thank you for the feedback @lordofthejars, actually, this is a study case. I really intend to use this approach in a micro-services context. I just got this project to test, because it is simple. To Java projects that I have been working, I have used chameleon, but only because it is not running in containers.

You have the point the approach that you suggested me really fits to my case. You got one follower more thank you a lot for your help.

bartoszmajsak commented 7 years ago

Hey @adriano-fonseca thanks a lot for all your feedback! We are really curious about your microservices study so don't hesitate to ping us with any question or idea. Either here or on http://discuss.arquillian.org/

adriano-fonseca commented 7 years ago

Hello @bartoszmajsak, very nice of you. ASAP I will share with the community, arquillian.org is a really good place to start. With the help that I received from @lordofthejars I gave one more step to implement this. Now I am having this issue:

Caused by: java.lang.IllegalStateException: Error launching request at http://localhost:8082/c7ac05fb-5e82-4998-91aa-a6f69e9cebc6/ArquillianServletRunner?outputMode=serializedObject&className=com.company.app.test.EjbTest&methodName=shouldFailStudentNotRemoved. No result returned

Arquillian has tried run the tests, the container was started in the port of my host where I binded, any help would be welcome, there is no much information to dig in google.

lordofthejars commented 7 years ago

Hi, it seems that it should work. Just one thing are you in Linux? Also notice that you are trying to reach port 8082, but in your arquillian.xml there is no pot binding to that port https://github.com/adriano-fonseca/PlayWithJEE/blob/master/src/test/resources/arquillian.xml#L59

adriano-fonseca commented 7 years ago

@lordofthejars, Yes, I am on ubuntu 16.04. Actually, I had changed the port on arquillian.xml, but I forgot to push to github, now it is already pushed. I am really stuck on this point.

About your previous comment...

"I think that maybe if your test does not need to deploy anything, since Docker image already contains everything then you might use Arquillian Standalone. Something like "

I was thinking...Actually, I really need to deploy in this way, because I have a wildfly base image, which contains my environment with everything that my application requires. I intend put my application inside this container. So, I will be testing my real world containerized application, if was not the case I will continue running my integration tests through chameleon. Running against the containerized version, if the tests was succeed I will push this version to the docker registry using spotify plugin. In another hand, if the tests fail I won't create a container version. If understand what you have suggested, I would have to build this image previously.

lordofthejars commented 7 years ago

I am just suggesting another way of doing this. I will need some time to investigate what it is happening to you in this case, I will try to isolate the problem and provides you a solution ASAP after current sprint.

lordofthejars commented 7 years ago

Regarding

java.lang.IllegalArgumentException: Containerless container should be built using a Dockerfile, and no templatePath property found for container.

There is a bug somewhere in code, trying to find where and fixing it.

lordofthejars commented 7 years ago

BTW have you tried in using Wildfly 8.1.0 instead of 9.0.0?

lordofthejars commented 7 years ago

Ok for IllegalArgumentException you need to add next property in arquillian.xml <property name="definitionFormat">CUBE</property> to set format to CUBE.

adriano-fonseca commented 7 years ago

Thank you again for attention @lordofthejars.

  1. about the isse:

"java.lang.IllegalArgumentException: Containerless container should be built using a Dockerfile, and no templatePath property found for container."

That was my mistake, I had inverted the file names in my configuration in some point, trying alternative configuration to address the problem with the conflict from jersey version.

  1. I didn't try to use 8.1.0, but I can. I wiil do that in the end of day, and I will let you known the result.

Currently I am facing the error that follows:

Caused by: java.lang.IllegalStateException: Error launching request at http://localhost:8082/efc9f3f1-a366-4bb3-8d37-d7873dcd8bbd/ArquillianServletRunner?outputMode=serializedObject&className=com.company.app.test.EjbTest&methodName=shouldFailStudentNotRemoved. No result returned

I revised my configuration and I already have the property that you suggest to use, as follows:

  <extension qualifier="docker">
    <property name="serverVersion">1.12</property>
    <property name="definitionFormat">CUBE</property>
    <property name="dockerContainers">
        wildfly-docker:
          buildImage:
            dockerfileLocation: src/test/resources/wildfly
            noCache: true
            remove: true
          portBindings: [8082->8080/tcp, 9991->9990/tcp]

        wildfly-image:
          buildImage:
            dockerfileLocation: src/test/resources/wildfly-image
            noCache: true
            remove: true
          portBindings: [8082->8080/tcp]
        </property>
</extension>
<container qualifier="wildfly-docker" default="false">
    <configuration>
        <property name="chameleonTarget">wildfly:9.0.0.Final:remote</property>
        <property name="username">admin</property>
        <property name="password">Admin#70365</property>
    </configuration>
</container>
<container qualifier="wildfly-docker-image" default="true">
    <configuration>
        <property name="containerlessDocker">wildfly-image</property>
        <property name="embeddedPort">8082</property>
    </configuration>
</container>

The image base to build this application is in docker hub as public. I think you won't have problem to got the same error. Just checkout my project e run mvn clean package -Pwildfly-docker-image

I got succeed running the wildfly-docker using chameleon accessing the container remotely. That it is good enough for my purposes. But would be nice see the arquillian-cube running the same scenario using containerless feature. I am steel here to help you with what you need, just let me know.

lordofthejars commented 7 years ago

One question do you have the problem when running in containerless way or chameleon or both?

adriano-fonseca commented 7 years ago

All qualifiers with chameleonTarget run without problem. The error that I descibed up there is related to containerlessDocker qualifier. I could run against docker container using wildfly-docker. However, I have a need that I am not sure if the Cube addresses. I need to stop and remove the cointeiner the my tests created and started on host where the tests are running, when the tests finished. I intend run this tests in jenkins server which is used for many team and I can get the follow situation when another application try to run a container with the same name.

Caused by: com.github.dockerjava.api.exception.ConflictException: Conflict. The name "/wildfly-docker" is already in use by container 08754da91ea1735f281604504fccfa4d80926459b712476ec7d927feaba82f3f. You have to remove (or rename) that container to be able to reuse that name.

I have forked your project and I will try to set my environment with the project, to see how the Cube makes the work under the hood.

lordofthejars commented 7 years ago

Yes running same containers in same docker host makes a conflict this error is not related to Cube but to Docker. You can fix this concurrency using http://arquillian.org/arquillian-cube/#_parallel_execution

lordofthejars commented 7 years ago

So the thing that you cannot run (apart from Jenkins problem which is related on how Docker manages images), is in containerless right? But I am not seeing why you need containerless with WildFly. If you don't want to deploy anything you can use standalone mode and if you want to deploy something you can use exactly what you are doing with chameleon.

adriano-fonseca commented 7 years ago

Yes, you are right. As I said before I got what I need using that container set. ``

wildfly:9.0.0.Final:remote admin Admin#70365

``

adriano-fonseca commented 7 years ago

The Star Operator it is exactly what I need. But every time I will created a new container there and they will accumulate right? That is a waste of space in my view. One time that cube has created e started the container they should stop and removed this container at the and of the tests. There is a way to do that?

lordofthejars commented 7 years ago

It is automatically removed (even the build one) using Alpha16.

adriano-fonseca commented 7 years ago

About configure Cube here to debug it. I am having the follow the dependencies error. On project arquilian-cube-ftest and On project arquilian-cube-docker. Follows my maven settings.xml:

<?xml version="1.0" encoding="UTF-8"?> <settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<profiles>
    <profile>
        <id>jboss-public-repository</id>
        <repositories>
            <repository>
                <id>jboss-public-repository-group</id>
                <name>JBoss Public Maven Repository Group</name>
                <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
                <layout>default</layout>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>jboss-public-repository-group</id>
                <name>JBoss Public Maven Repository Group</name>
                <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
                <layout>default</layout>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>
    <profile>
        <repositories>
            <repository>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>central</id>
                <name>libs-release</name>
                <url>https://secweb.intra.rs.gov.br/artifactory/libs-release</url>
            </repository>
            <repository>
                <snapshots />
                <id>snapshots</id>
                <name>libs-snapshot</name>
                <url>https://secweb.intra.rs.gov.br/artifactory/libs-snapshot</url>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>central</id>
                <name>plugins-release</name>
                <url>https://secweb.intra.rs.gov.br/artifactory/plugins-release</url>
            </pluginRepository>
            <pluginRepository>
                <snapshots />
                <id>snapshots</id>
                <name>plugins-snapshot</name>
                <url>https://secweb.intra.rs.gov.br/artifactory/plugins-snapshot</url>
            </pluginRepository>
        </pluginRepositories>
        <id>artifactory</id>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>artifactory</activeProfile>
    <activeProfile>jboss-public-repository</activeProfile>
</activeProfiles>

adriano-fonseca commented 7 years ago

Alpha16 it is already available?

lordofthejars commented 7 years ago

yes, it was released this morning :)

adriano-fonseca commented 7 years ago

Awesome.

lordofthejars commented 7 years ago

yes, sometimes if there is a runtime exception, the image is not removed. It is a bug we are trying to address and we did some fixes but probably there are still some bits not considered.

adriano-fonseca commented 7 years ago

Am I using the right repository to get snapshots version in order to build cube?

lordofthejars commented 7 years ago

SNAPSHOTS are not released. You should clone the cube repository and import it in your IDE and it should works perfectly.

adriano-fonseca commented 7 years ago

I did that and I am having problem with its dependencies. As I said up there I think that you didn't read one post of mine up there. Understandable this thread is quite long.

On project arquilian-cube-ftest and On project arquilian-cube-docker

lordofthejars commented 7 years ago

But it is strange because now I am not sure why you get problems, maybe a proxy that does not download any required dependency. Can you tried mvn install -DskipTests? Maybe @bartoszmajsak has any idea about this.

adriano-fonseca commented 7 years ago

With skip Tests worked. Thank you.