Coder Social home page Coder Social logo

ci.docker.websphere-traditional's Introduction

Docker Hub Image

The files in this directory are used to build the ibmcom/websphere-traditional images on Docker Hub. These images contain the ILAN licensed IBM WebSphere Application Server traditional. For production use or if you wish to build these yourself just follow these instructions, otherwise please see below on how to extend our pre-built image with your application and configuration! Once you're ready to deploy this into Kubernetes, please see our helm chart.

Try IBM Container Registry: Our traditional WebSphere Application Server images are also available from IBM Container Registry (ICR) at icr.io/appcafe/websphere-traditional. Unlike with Docker Hub, images can be pulled from ICR without rate limits and without authentication. Only images with Universal Base Image (UBI) as the Operating System are available in ICR at the moment.

Note: The 9.0.5.3 release images were the last version where latest and 9.0.5.# tagged images were based upon Ubuntu v16.04 as the base operating system. Starting with the 9.0.5.4 release, the images are now based upon Red Hat Universal Base Image (UBI) 8 OS images. As always, you are welcome to build your own images using any base OS image that supports IBM WebSphere Application traditional.

Note: Have you considered trying out WebSphere Liberty? It's based on the Open Source project Open Liberty, fully supports Java EE8 and MicroProfile 2.0, and it's much lighter, faster and easier to configure than WAS traditional. You can try it today for free from Docker Hub. If you have entitlement for WAS traditional you already have entitlement for Liberty included. Find out more about how to use WebSphere Liberty in Kubernetes here.

Building an application image

The Docker Hub image contains a traditional WebSphere Application Server v9 or v855 instance with no applications or configuration applied to it.

Best practices

According to Docker's best practices you should create a new image (FROM ibmcom/websphere-traditional) which adds a single application and the corresponding configuration. You should avoid configuring the image manually (after it started) via Admin Console or wsadmin (unless it is for debugging purposes) because such changes won't be present if you spawn a new container from the image.

Even if you docker save the manually configured container, the steps to reproduce the image from ibmcom/websphere-traditional will be lost and you will hinder your ability to update that image.

The key point to take-away from the sections below is that your application Dockerfile should always follow a pattern similar to:

FROM ibmcom/websphere-traditional:<version>
# copy property files and jython scripts, using the flag `--chown=was:root` to set the appropriate permission
RUN /work/configure.sh

This will result in a Docker image that has your application and configuration pre-loaded, which means you can spawn new fully-configured containers at any time.

App Image

Adding properties during build phase

The Docker Hub images contain a script, /work/applyConfig.sh, which will apply the config properties found inside the /work/config/*.props file. This script will be run with the server in stopped mode and the prop files will be applied in alphabetic order.

For example, if you had the following /work/config/001-was-config.props:

ResourceType=JavaVirtualMachine
ImplementingResourceType=Server
ResourceId=Cell=!{cellName}:Node=!{nodeName}:Server=!{serverName}:JavaProcessDef=:JavaVirtualMachine=
AttributeInfo=jvmEntries
#
#
#Properties
#
initialHeapSize=2048 #integer,default(0)

You can then create a new image which has this configuration by simply building the following Dockerfile:

FROM ibmcom/websphere-traditional:latest
COPY --chown=was:root 001-was-config.props /work/config/
RUN /work/configure.sh

You may use numeric prefixes on your prop file names, so props that have dependencies can be applied in an adequate order.

Adding an application and advanced configuration during build phase

Similar to the example above, you can also deploy an application and advanced configuration by placing your Jython (.py) scripts under the folder /work/config.

Putting it all together, you would have a Dockerfile such as:

FROM ibmcom/websphere-traditional:latest
COPY --chown=was:root was-config.props /work/config/
COPY --chown=was:root myApp.war /work/app/
COPY --chown=was:root myAppDeploy.py dataSourceConfig.py /work/config/
RUN /work/configure.sh

Installing iFixes

Normally it is best to use fixpacks instead of installing individual iFixes but some circumstances may require the ability to install a test fix. In order to install iFixes on the image, you must first get access to the agent installer and the Fix Central for the required download:

    1. Follow the instructions at https://www.ibm.com/support/pages/node/1115169 until you have downloaded the agent.installer.linux.gtk*.zip file to your system. For example, the installer zip for a linux x86_64 will be similar to agent.installer.linux.gtk.x86_64_1.9.2003.20220917_1018.zip.
    1. Follow the Fix Central https://www.ibm.com/support/fixcentral/ to select the ifix matched to your product version and platform. For example, an ifix PH47531 for the platform of linux x86_64 will be similar to 9.0.0.0-ws-wasprod-ifph47531.zip

Once you have the iFix and the agent installer on the system you are building your image on, configure the dockerfile to extract the installer and run the installer on the iFix as shown in the example dockerfile below.

FROM ibmcom/websphere-traditional:9.0.0.10
COPY A.ear /work/config/A.ear
COPY install_app.py /work/config/install_app.py
RUN /work/configure.sh

COPY agent.installer.linux.gtk*.zip /work
RUN cd /work && \
	unzip agent.installer.linux.gtk*.zip -d /work/InstallationManagerKit && \
	rm -rf agent.installer.linux.gtk*.zip  

COPY **YOUR_DOWNLADED_IFIX.zip** /work/
	RUN /work/InstallationManagerKit/tools/imcl install **THE_IFIX_FIX_NAME** -repositories /work/**YOUR_DOWNLADED_IFIX.zip** -installationDirectory /opt/IBM/WebSphere/AppServer -dataLocation /opt/IBM/WebSphere/AppServerIMData && \
	rm -Rf /tmp/secureStorePwd /tmp/secureStore /work/InstallationManagerKit

NOTE:

  • Replace the value YOUR_DOWNLADED_IFIX.zip with your downloaded ifix
  • Replace the value THE_IFIX_FIX_NAME with the selected ifix name. If you're not sure about the ifix fix name, you may unzip the ifix zip and retrieve the fix name from the file fix_name.txt. Please be aware there may be case sensitivity between fix name and the zip file name. See the example from linux ifix on the replaced values:
COPY 9.0.0.0-ws-wasprod-ifph47531.zip /work
RUN /work/InstallationManagerKit/tools/imcl install 9.0.0.0-WS-WASProd-IFPH47531 -repositories /work/9.0.0.0-ws-wasprod-ifph47531.zip …

You can find more information about the imcl command at https://www.ibm.com/support/knowledgecenter/en/SSDV2W_1.8.4/com.ibm.cic.commandline.doc/topics/c_imcl_container.html

Logging configuration

By default, the Docker Hub image is using High Performance Extensible Logging (HPEL) mode and is outputing logs in JSON format. This logging configuration will make the docker container a lot easier to work with ELK stacks.

Alternatively, user can use basic logging mode is plain text format. You can switch the logging mode to basic via the following Dockerfile:

FROM ibmcom/websphere-traditional:latest
ENV ENABLE_BASIC_LOGGING=true
RUN /work/configure.sh

Running Jython scripts individually

If you have some Jython scripts that must be run in a certain order, or if they require parameters to be passed in, then you can directly call the /work/configure.sh script - once for each script.

Let's say you have 2 scripts, configA.py and configB.py, which must be run in that order. You can configure them via the following Dockerfile:

FROM ibmcom/websphere-traditional:latest
COPY --chown=was:root configA.py configB.py /work/
RUN /work/configure.sh /work/configA.py <args> \
    && /work/configure.sh /work/configB.py <args>

Runtime configuration

How about properties that are dynamic and depend on the environment (eg: changing JAAS passwords or data source host at runtime)? Traditional WAS is not nearly as dynamic as Liberty, but we have augmented the start_server script to look into /etc/websphere for any property files that need to applied to the server.

So during docker run you can setup a volume that mounts property files into /etc/websphere, such as:

docker run -v /config:/etc/websphere  -p 9043:9043 -p 9443:9443 websphere-traditional:latest

Similarly to build-phase props, the dynamic runtime props will also be applied in alphabetic order, so you can also use numeric prefixes to guarantee dependent props are applied in an adequate order.

Dynamic

How to run this image

When the container is started by using the IBM WebSphere Application Server traditional image, it takes the following environment variables:

  • UPDATE_HOSTNAME (optional, set to true if the hostname should be updated from the default of localhost)
  • PROFILE_NAME (optional, default is AppSrv01)
  • NODE_NAME (optional, default is DefaultNode01)
  • SERVER_NAME (optional, default is server1)

Running the image by using the default values

   docker run --name was-server -h was-server -p 9043:9043 -p 9443:9443 -d \
   websphere-traditional:latest

Running the image by passing values for the environment variables

docker run --name <container-name> -h <container-name> \
  -e UPDATE_HOSTNAME=true -e PROFILE_NAME=<profile-name> \
  -e NODE_NAME=<node-name> -e SERVER_NAME=<server-name> \
  -p 9043:9043 -p 9443:9443 -d <profile-image-name>

Example:

docker run --name test -h test -e UPDATE_HOSTNAME=true \
  -e PROFILE_NAME=AppSrv02 -e NODE_NAME=DefaultNode02 -e SERVER_NAME=server2 \
  -p 9043:9043 -p 9443:9443 -d websphere-traditional:latest 

Retrieving the password

The admin console user id is defaulted to wsadmin and the initial wsadmin user password is in /tmp/PASSWORD

   docker exec was-server cat /tmp/PASSWORD

Retrieving the keystore password

The initial keystore, truststore, and rootstore password is in /tmp/KEYSTORE_PASSWORD

   docker exec was-server cat /tmp/KEYSTORE_PASSWORD

How to check the WebSphere Application Server installed level and ifixes

   docker run websphere-traditional:9.0.5.0 versionInfo.sh -ifixes

Checking the logs

docker logs -f --tail=all <container-name>

Example:

docker logs -f --tail=all test

The logs from this container are also available inside /logs, therefore you can setup a volume mount to persist these logs into an external directory:

Logs

Stopping the Application Server gracefully

docker stop --time=<timeout> <container-name>

Example:

docker stop --time=60 test

Checking the Image Version

Using podman (or docker) you can check the date the image was created using the following command.

podman images websphere-traditional

You can then check the output for the creation date

REPOSITORY                              TAG         IMAGE ID      CREATED     SIZE
docker.io/ibmcom/websphere-traditional  latest      f5dd9da02c85  7 days ago  1.91 GB

If you would like to check the version of websphere running inside of your image, you can run the following command against the image. Replace "websphere-traditional" with your image name if you want to check an image you built.

podman run --entrypoint="./opt/IBM/WebSphere/AppServer/bin/versionInfo.sh" websphere-traditional

Updating to the Latest Version

  1. Find the currently running containers using the websphere-traditional image. Take note of their container ID
podman ps -a
  1. Stop and remove the running websphere-traditional containers. Both of these commands will output the container ID when completed
podman stop <container_id_from_step_1>
podman rm <container_id_from_step_1>
  1. Pull the updated image. The tag should be for the version you are using
podman pull ibmcom/websphere-traditional:latest
  1. Rebuild images that use the websphere-traditional image. Make sure they are using the same "FROM" that you pulled in step 3
  2. Run the newly pulled and built container images

ci.docker.websphere-traditional's People

Contributors

arthurdm avatar arturdzm avatar barecode avatar billyd73 avatar bradleymayo avatar clarkja avatar covener avatar crpotter avatar davidcurrie avatar dibbles avatar donbourne avatar dstolf avatar ellen-lau avatar frowe avatar fwji avatar gcharters avatar gmarcy avatar hughesj avatar kavisuresh avatar kgibm avatar leochr avatar liamawhite avatar mbroz2 avatar samadan avatar scottkurz avatar wraschke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ci.docker.websphere-traditional's Issues

Problem with parallel federation

I created dmgr and custom docker images. Creating and federating nodes work but when I try to federate more than one custom node at the same time then there are some conflicts - usually only one federation succeeds but often with desired name of other node.
I know I can create multiple custom images with different starting names - and it should work - but it is not very scalable. Is there any way to federate nodes created from the same image in parallel?

NoClassDefFoundError: ConfigService

I get an error java.lang.NoClassDefFoundError: com.ibm.websphere.management.configservice.ConfigService when installing MDM CE using 9.0.0.6-profile. However, I do not get that error when using 8.5.5.12-profile.

changing administrative port makes console inaccessible

Hello Team,

maybe its my bad and the issue can be closed quickly: I am running my WAS traditional container and have mapped the administrative port from inside the container 9060 to outside 80. When i am trying to open a browser on my IP on port 80 i get a redirect to port 9060 again and so the console is not showing up. Same occurs with wget

image

Can you help me how to access the IBM console on a different port outside the container?

Java 7 support

The Dockerfile ibmcom/websphere-traditional:8.5.5.9-profile bundles Java 6.

How can I add & configure Java 7?

/opt/IBM/WebSphere/AppServer/java/jre/bin# /opt/IBM/WebSphere/AppServer/java/jre/bin/java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxa6460_26sr8fp20-20160111_01(SR8 FP20))
IBM J9 VM (build 2.6, JRE 1.6.0 Linux amd64-64 Compressed References 20151222_283040 (JIT enabled, AOT enabled)
J9VM - R26_Java626_SR8_20151222_1616_B283040
JIT  - tr.r11_20151209_107111.01
GC   - R26_Java626_SR8_20151222_1616_B283040_CMPRSS
J9CL - 20151222_283040)
JCL  - 20160104_01

Adding users

Hi!

I'm trying to add users with wsadmin.sh script during build of image with RUN. Connection type -conntype NONE and command AdminTask.createUser as expected returns error:

com.ibm.websphere.management.cmdframework.CommandException: com.ibm.websphere.management.cmdframework.CommandException: Command createUser does not support localmode

And -conntype SOAP returns error:

WASX7023E: Error creating "SOAP" connection to host "localhost"; exception information: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Unable to find a valid IP for host localhost``

I have the same problem using ENTRYPOINT.

It there no way of creating users? Should it be done only after the container has started?

output all log files to Docker logs

Docker logs only shows the startServer.log but there are other logs like SystemOut.log and any other log files. Can these be redirected somehow to Docker logs

Can't install new software due to privilege issue

I was able to run container successfully using image ibmcom/websphere-traditional:8.5.5.12-install. Server is running.
Now I am inside container and want to install new softwares like unzip and wget using apt-get.
But while trying that I am getting below error:

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Remove Sample Applications

Hey Team, thanks for all the great work. Your Docker images help us a lot in our daily work.

Is there a way to create a profile without the sample application? I've read the "manageprofiles" documentation but can't find a switch to skip the installation of "DefaultApplication", "query" and "ivtApp". I would like to speed up the setup and therefore try to remove the unnecessary stuff.

image

Make developer-image more beginner-friendly

This issue is mainly about the websphere developer images hosted on dockerhub: https://hub.docker.com/r/ibmcom/websphere-traditional/

Comparing to other application-server's docker images, I think the default settings could be improved for developers to get started and more easily deploy a JavaEE application.
I have derived my own docker image that I sometimes use in demos or to very quickly try out a feature on websphere: https://github.com/38leinaD/docker-images/blob/master/websphere-9/configure.py

  • Enable auto-deployment for a folder
  • Enable debug port
  • Enable development-mode of WAS
  • enableAdminSecurity=false

Is this something we could have with the official image? I think this could considerable lower the barrier for someone to get started with JavaEE on Websphere.

SOAP errors on war deployment

Container started using:
docker run --name test -h test -p 9043:9043 -p 9443:9443 -d ibmcom/websphere-traditional:profile

Note that I get the same error deploying the old standard MQTTJavascript.war

was@test:~$ wsadmin.sh AdminApp installInteractive ./rf-app-admin.war
Realm/Cell Name:
Username: wsadmin
Password: FMINem java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:234)
at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:101)
at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:981)
at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:415)
at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:176)
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy7.getAttribute(Unknown Source)
at com.ibm.ws.management.AdminClientImpl.getAttribute(AdminClientImpl.java:153)
at com.ibm.ws.scripting.CommonScriptingObject.connectToAdminService(CommonScriptingObject.java:130)
at com.ibm.ws.scripting.CommonScriptingObject.(CommonScriptingObject.java:104)
at com.ibm.ws.scripting.AdminControlClient.(AdminControlClient.java:170)
at com.ibm.ws.scripting.AbstractShell.createControlClient(AbstractShell.java:1366)
at com.ibm.ws.scripting.AbstractShell.run(AbstractShell.java:2359)
at com.ibm.ws.scripting.WasxShell.main(WasxShell.java:1256)
... 26 more
Caused by: [SOAPException: faultCode=SOAP-ENV:ServerException; msg=The Soap RPC call can't be unmarshalled.]
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.handleAdminFault(SOAPConnectorClient.java:969)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplateOnce(SOAPConnectorClient.java:934)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplate(SOAPConnectorClient.java:699)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplate(SOAPConnectorClient.java:689)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.getAttribute(SOAPConnectorClient.java:644)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invoke(SOAPConnectorClient.java:500)
... 34 more

How to add Python in ibmcom/websphere-traditional container

We are trying to add/install Python in ibmcom/websphere-traditional container, but it pops-up the Permisson denied.
We also tried to use owned Dockerfile

Set the base image to websphere-traditional

FROM docker.io/ibmcom/websphere-traditional

Expose the default port

EXPOSE 9043/TCP 9080/TCP 443/TCP 80/TCP 389/TCP 5060/TCP 5061/TCP

Update the repository sources list

RUN apt-get update

################## BEGIN INSTALLATION ######################

Install python3

RUN apt-get install python3-all

Update the repository sources list once more

RUN apt-get update
##################### INSTALLATION END #####################

the Permission denied occurred at # Update the repository sources list
RUN apt-get update

How do we workaround this issue? Thanks.

Re-open root access discussion

I am building a container for my app server using WAS traditional as a base. Into that I want to install my own product, thus I copy in my install folder.

Once the container is started, I am unable to run my install as the files are all owned by root, and the id running when I bash into the container is was:was. No amount of chowning / chmodding in the dockerfile seems to be able to change the ownership of my copied install folder away from root to was:was.

As an aside, my install is ant based, this happens even if I do not do a "user root" so I can install ant from the dockerfile

Brent.

Caller is not in the required role to access restricted document(s)

I am using Docker image ibmcom/websphere-traditional:9.0.0.7-install as my base image.
The profile I am creating inside Docker RUN command from my Dockerfile. Image builds correctly. However, when I try to run it I am receiving an exception:

[4/17/18 7:57:27:337 CEST] 000000df WorkSpaceMast E WKSP0012E: Exception while extracting cells/DefaultCell01/nodes/DefaultNode01/namestore.xml from ConfigRepository--com.ibm.websphere.management.exception.RepositoryException: Caller is not in the required role to access restricted document(s)

What is the reason for such an error and how can I fix it?

Add routes...

I need to add routes to the project, inside linux it says command not found all the time. Does anyone know how to add routes to this linux? Thank you

Out of memory error

All,

We're currently getting an out of memory error on the 9.0.0.8 latest image e.g.

WSInstallApplication: Installing Application TESTAPP
JVMDUMP039I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError" at 2018/09/06 15:03:17 - please wait.
JVMDUMP032I JVM requested System dump using '//core.20180906.150317.2622.0001.dmp' in response to an event
JVMDUMP030W Cannot write dump to file //core.20180906.150317.2622.0001.dmp: Permission denied
JVMDUMP010I System dump written to /tmp/core.20180906.150317.2622.0001.dmp
JVMDUMP039I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError" at 2018/09/06 15:03:20 - please wait.
JVMDUMP030W Cannot write dump to file //heapdump.20180906.150317.2622.0002.phd: Permission denied
JVMDUMP032I JVM requested Heap dump using '/tmp/heapdump.20180906.150317.2622.0002.phd' in response to an event

Obviously the first thought are the heap size settings which are set to 2048 MB max size and no initial size. However these are the exact same settings which have been applied on another WAS instance which isn't a docker image v 9.0.0.6

Appreciate any thoughts or what else we could try / change to resolve this

Many thanks

Failure occured while attempting to Importing Config Archive

Hi David,

I am using the network deployment WAS. I was able to build images up to *:install. However, I'm having problems when building the images for, say dmgr and appsrv. For example, here's what I got for appsrv,

The translated exception message is: The following error occurred while executing this line: /opt/IBM/WebSphere/AppServer/profileTemplates/default/actions/scripts/importExternalLogs.xml:30: Failure occured wh ile attempting to Importing Config Archive: /opt/IBM/WebSphere/AppServer/profileTemplates/default/configArchives/Ap pSrv.car into profile.

I did see that the file is there:
was@552f09386c53:/$ ls -ltr /opt/IBM/WebSphere/AppServer/profileTemplates/default/configArchives/AppSrv.car -rw-r--r-- 1 was was 1026781 Oct 6 06:00 /opt/IBM/WebSphere/AppServer/profileTemplates/default/configArchives/AppSrv.car

Have you encountered that same problem before?

Thanks!

WebSphere traditional 8.5.5.9 with JDK 8

Hi, i'm having troubles changing the jdk provided with the image, i need to run WebSphere with JDK 8 can you please tell me if it's possible to do it? and if it is also tell me what i have to do

thank you

Errors trying to build this image

I went down the path of trying to build the ci.docker.websphere-traditional/developer image locally and hit 2 problems. (I later realized that I didn't need to be doing this but wanted to share what I hit.)

  1. https://github.com/WASdev/ci.docker.websphere-traditional/blob/master/developer/im/Dockerfile
    contains the line:
    RUN unzip -qd /tmp/im /tmp/agent.installer.linux.gtk.x86_64_.zip
    && /tmp/im/installc -acceptLicense -accessRights nonAdmin
    -installationDirectory "/opt/IBM/InstallationManager"
    -dataLocation "/var/ibm/InstallationManager" -showProgress
    && rm -rf /tmp/agent.installer.linux.gtk.x86_65_
    .zip /tmp/im

The issue here is in the clean up rm -rf /tmp/agent.installer.linux.gtk.x86_65_*.zip doesn't match the original file name. NOTE: 65 vs 64.

  1. The second issue was related the IM installer I downloaded. I followed the link in the instructions to get An IBM InstallationManager install .zip for x86 64-bit Linux (agent.installer.linux.gtk.x86_64_*.zip) - The link took me to http://www-01.ibm.com/support/docview.wss?uid=swg27025142 and I downloaded agent.installer.linux.gtk.x86_64_1.6.1000.20121109_1537.zip which is very old. With that IM, I get the following error:
00:00.39 ERROR [main] com.ibm.cic.agent.internal.application.HeadlessApplication run
  
  {IM install directory}/tools/imcl:
  Problem in command line: -toolId imcl -accessRights nonAdmin -silent -showProgress -acceptLicense install com.ibm.websphere.ILAN.v90_9.0.8.20180530_1827 com.ibm.java.jdk.v8 -repositories http://www.ibm.com/software/repositorymanager/V9WASILAN -installationDirectory /opt/IBM/WebSphere/AppServer -secureStorageFile /tmp/credentials -preferences com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts=false
  Unrecognized command line argument "-secureStorageFile".

Some updates on what IM level to get would be useful and where to get it.

  1. It would have been good if https://hub.docker.com/r/ibmcom/websphere-traditional/ provided simple examples of a Docker file to build a modified tWAS image. That's what I was really looking to do, but ended down this trail.

Provide deployment guide for kubernetes

I'm deploying websphere cluster on kubernetes, as the hostname and /etc/hosts is managed by k8s, and the pod ip is daynamic, every time restart, ip is changed. It's hard to deploy cluster of was when was relying on hostname.
If there is a guide on how to deploy cluster of was on kubernetes, it would be very helpful.

Regards

What is differenct between ibmcom/websphere-traditional:install and :profile

The only difference between :install and :profile image seems that one will create the server profile at container startup time and the other will include the server profile in the image. It seems not very useful to have the ibmcom/websphere-traditional:install.

Can someone share a good use case for the ibmcom/websphere-traditional:install that it can not be done with ibmcom/websphere-traditional:profile? Maybe we should stop publishing ibmcom/websphere-traditional:install to docker hub.

Correct nd custom example image name

docker run --name custom1 -h custom1 --net=cell-network -e PROFILE_NAME=Custom01 -e NODE_NAME=CustomNode01 -e DMGR_HOST=dmgr -e DMGR_PORT=8879 -d custom

should be

docker run --name custom1 -h custom1 --net=cell-network -e PROFILE_NAME=Custom01 -e NODE_NAME=CustomNode01 -e DMGR_HOST=dmgr -e DMGR_PORT=8879 -d websphere-traditional:custom

Container stops if server is restarted

Docker container automatically stops if I stop the server using the stopServer.sh script. I think that is Docker feature. What is recommended practice to restart the server?

Admin console not working for profile or install images?

I'm following the documentation here for running the web sphere container, however I'm not seeing the admin console come up. Wondering if I'm doing something wrong, or if the docs are missing something?

Running on Windows 7, using docker toolbox.

Steps:

  • `docker pull ibmcom/websphere-traditional:profile1
  • `docker run --name test -h test -p 9043:9043 -p 9443:9443 -d ibmcom/websphere-traditional:profile
  • docker logs -f test
    ** Waiting for the server started messages
  • Open browser to https://localhost:9043/ibm/console/login.do?action=secure

I'm getting Connection Refused errors. I have tried running with -e UPDATE_HOSTNAME=true and using the $(docker-machine ip) instead of localhost, but not having any success.

What am I doing wrong?

Running Jython script file from host to execute on WAS docker container

Hi

I'm trying to execute a jy jython script which interacts with the WAS instance from the host ( a Mac ). What's the recommend approach to do this please?

I thought running the following would allow this

docker exec 1c844d674320 wsadmin.sh -lang jython -port 9443 -user wsadmin -password a3qJEo0O

However I get exceptions when starting

PC05249s-MacBook-Pro:~ madamson$ docker exec 1c844d674320 wsadmin.sh -lang jython -port 9443 -user wsadmin -password a3qJEo0O
WASX7023E: Error creating "SOAP" connection to host "localhost"; exception information: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Protocol; msg=Unsupported response content type "text/html; charset=utf-8", must be: "text/xml". Response was:
Error 404: com.ibm.ws.webcontainer.servlet.exception.NoTargetForURIException: No target servlet configured for uri: /
]

So perhaps this approach isn't even valid.

Many thanks

PASSWORD GERNERATE

all version when i run docker, has problem when i see log /work/modify_password: line 17: /tmp/PASSWORD: Is a directory
I can't get password , so please help me fix it

issue while running manageprofile

Hello,

I have created a container using my own image that contains the instructions to install WAS Base 8.5.5.13 binaries and was sdk install. When I ran manageprofiles command inside that container there is no errors or logs but at the same time the JVM is not getting created .Any idea? We were working with IBM for the past two months for this issue and now they suggested us to create an issue ID here.

Volume Usage Support

It could be added support for volume usage in order to separate the binary from dynamic data as profile configuration.

Unknown flag: chown

I am building an image from FROM ibmcom/websphere-traditional:latest

I get following error message when I tried to execute the following command in Dockerfile

COPY --chown=was:was scripts/* /work/

Unknown flag: chown

Routing to WebSphere Application Server using an external router from OpenShift Origin

Hi,

I’m trying to route traffic from OpenShift Origin (like a nginx proxy) to the WebSphere Server which is basically running in a Docker container in OpenShift.

The URL to route the traffic to WebSphere looks like this: https://websphere-myproject.10.0.75.2.nip.io/ibm/console/login.do?action=secure, which actually arrives on WebSphere, however, WebSphere seems to give a wrong response (or routes me to another invalid URL because not having SSL enabled). How can I make the WebSphere only listens on that route/url so that it gives me a correct response that routes me to WebSphere Application Server Console (Port 9043)?

Basically. I’m using a router to route the traffic to the WebSphere Application Server, however, because the reason that WebSphere seems to control routing itself, I think there is a conflct when I try to manage the routing though, for example a HA PROXY, nginx-Server.

How can I solve this issue?

Unable to get wsadmin password from /tmp/PASSWORD

There is no password under the /tmp/PASSWORD, Please find the below command output for your reference.

[root@fsr3vlwaspoc1 ~]#‌ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

18321f1d8492 ibmcom/websphere-traditional:latest "/work/start_serve..." 2 hours ago Up About an hour 0.0.0.0:9043->9043/tcp, 0.0.0.0:9443->9443/tcp test

[root@fsr3vlwaspoc1 ~]#‌ docker exec test cat /tmp/PASSWORD

cat: /tmp/PASSWORD: Is a directory

[root@fsr3vlwaspoc1 ~]#‌

docker stop failing to stop server cleanly

With admin security enabled the stopServer call made when the wrapper script detects a SIGINT on docker stop is failing as it is not providing credentials. Suggest passing the SIGINT directly on to the server process.

How to install Java 7 SDK? Please help.

In the comments section on https://hub.docker.com/r/ibmcom/websphere-traditional/, quite a few of us are asking how to add Java 7 SDK to the WAS 8.5.5.X docker container. I've installed imcl on the 8.5.5.10 docker container and tried installing Java 7 SDK but I'm getting the same error as the other people.

/opt/IBM/InstallationManager/eclipse/tools/imcl install com.ibm.websphere.IBMJAVA.v70_7.0.4001.20130510_2103 -repositories /opt/IBM/WebSphere/AppServer/temp/sdk -acceptLicense

ERROR: The installation package 'IBM WebSphere SDK Java Technology Edition (Optional)' requires components supplied by other packages.
The required components might be supplied by the following installation packages:
Package: WebSphere Application Server Version 8.5
Package: Application Client for IBM WebSphere Application Server Version 8.5
Package: DMZ Secure Proxy Server for IBM WebSphere Application Server Version 8.5

I understand that imcl is not aware of the existing WAS installation. How do we workaround this issue? Thanks.

Stucked on build step 10/12 WAS developer version

Hi there,

I ran the build for initial and profile images using the command
./build

On step 10/12 it stop with this message:

Step 10/12 : RUN wget -q -O - $TAR_URL | tar xz
---> Running in dd88b8b7ca58
tar: opt/IBM/WebSphere/AppServer/java/8.0/bin: Directory renamed before its status could be extracted
tar: opt/IBM/WebSphere/AppServer/java/8.0: Directory renamed before its status could be extracted
tar: opt/IBM/WebSphere/AppServer/java: Directory renamed before its status could be extracted
tar: Exiting with failure status due to previous errors
The command '/bin/sh -c wget -q -O - $TAR_URL | tar xz' returned a non-zero code: 2

Any help to make it continue until the end?

I'm working on a Mac V10.12.6

Thanks.

Avoid accumulating downloaded artifacts

Consider specifying -preferences com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts=false on IM install/update interactions to reduce size of build image.

Problem starting websphere-traditional:profile

I'm using the command docker container run --name websphere -p 9043:9043 -p 9443:9443 -d ibmcom/websphere-traditional:profile to successfully start WebSphere on my Windows 10 laptop running Docker for Windows using Linux containers. (It takes a LONG time, 1 1/2 hours, to start but it does start and works.)

I've tried the same command on two separate Linux servers (one Ubuntu 16.04 and the other RHEL 7.3) but in both cases it seems to hang in the same place. The last line I see in the logs is:

[9/13/17 14:55:41:616 UTC] 00000033 FileRepositor A ADMR0016I: User defaultWIMFileBasedRealm/server:DefaultCell01_DefaultNode01_server1 modified document cells/DefaultCell01/security.xml.

On my laptop, the following line is next in the log files:

[9/13/17 16:09:59:951 UTC] 000000b4 ActionServlet I org.apache.struts.action.ActionServlet init inside init....

As you can see on my laptop it takes 1:15 between the two lines so it's not unreasonable to expect it to take quite a while on the Linux servers as well. However, I have left them up over night and they're still not running.

Looking through container logs and under the /opt/IBM/WebSphere/ directory on the running containers I don't see any errors. Any ideas?

Issue with file permissions

When attempting to build the dmgr image I am getting

java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/configuration/org.eclipse.osgi/.manager/.fileTableLock (Permission denied)

Could this be because in websphere-traditional:nd-install (the base image) after the ADD of the tar, the file permissions are all drwxr-xr-x 3 root root and the USER has been set to was?

FYI I was able to workaround it by removing the section that creates the was user, which makes everything execute as root.

not able to access was console using 9043

Ran docker container with
docker run --name test -h test -e UPDATE_HOSTNAME=true -p 9043:9043 -p 9443:9443 -d
ibmcom/websphere-traditional:9.0.0.7-profile

But i am unable to connect to console with 9043. But i am able to ping and telnet . Is there any explicit setting do i need to take care

./build results in

Sending build context to Docker daemon 171.6MB
Step 1/5 : FROM ubuntu:16.04
---> 2d696327ab2e
Step 2/5 : RUN apt-get update && apt-get install -y unzip
---> Using cache
---> 6fe2ca5427b0
Step 3/5 : COPY agent.installer.linux.gtk.x86_64_.zip /tmp/
---> Using cache
---> 7335cfca3008
Step 4/5 : RUN unzip -qd /tmp/im /tmp/agent.installer.linux.gtk.x86_64_
.zip && /tmp/im/installc -acceptLicense -accessRights nonAdmin -installationDirectory "/opt/IBM/InstallationManager" -dataLocation "/var/ibm/InstallationManager" -showProgress && rm -rf /tmp/agent.installer.linux.gtk.x86_65_*.zip /tmp/im
---> Using cache
---> 45032a6db5be
Step 5/5 : ENV PATH /opt/IBM/InstallationManager/eclipse/tools:$PATH
---> Using cache
---> e956d7e1bf79
Successfully built e956d7e1bf79
Successfully tagged installation-manager:latest
Starting install of TWAS version: 1.0
tar: Removing leading `/' from member names
tar: /opt/IBM/WebSphere/AppServer: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
ML02:developer pro$

May need to update docker file with mkdir?

Support for WAS v7?

Hi,

Is there any plan to provide Docker images for WAS v7?

I am trying to build an IBM WebSphere Commerce environment using Docker. WebSphere Commerce still relies on WAS v7, FP 43.

I assume the answer is "No" as it is probably too old to be used widely, but I thought I would ask anyway.

Thanks, Ged.

ibmcom/websphere-traditional:8.5.5.9-profile Won't start

I am trying to run the image and it doesn't start the WAS, is this expected?
I've also tried with ibmcom/websphere-traditional:8.5.5.9-install and that one doesn't even has the server profile setup, so I am using the supposed correct image, is this just featured in latest?
Thanks in advance!

include apt-get update

in file ci.docker.websphere-traditional/network-deployment/install/Dockerfile.prereq

replace
RUN apt-get install -y unzip wget
with
RUN apt-get update -y && apt-get install -y unzip wget

to prevent
Status: Downloaded newer image for ubuntu:14.04 ---> 90d5884b1ee0 Step 2 : MAINTAINER Kavitha Suresh Kumar <[email protected]> ---> Running in 5f13cf9ddb9a ---> 7f93c06538b9 Removing intermediate container 5f13cf9ddb9a Step 3 : RUN apt-get install -y unzip wget ---> Running in d15aa6ccaadb Reading package lists... Building dependency tree... Reading state information... E: Unable to locate package unzip E: Unable to locate package wget

How to link eclipse with WAS for developers ?

Hi,

I have build and run WAS traditional for developers image on docker container in a Mac device. I want to link eclipse installed in the Mac device to this WAS in a container. I have done this before using IBM WAS developer tools addon for eclipse, but WAS was installed directly into the laptop using other OS.

Do you know how to do it?

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.