This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Better builds + 9.0.0.3 + IHS shutdown fix - #22

Open
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds
Open

Better builds + 9.0.0.3 + IHS shutdown fix#22
trajano wants to merge 4 commits into
WASdev:masterfrom
trajano:better-builds

Conversation

@trajano

Copy link
Copy Markdown
Contributor

Addresses #20

trajano added a commit to trajano/jee that referenced this pull request May 23, 2017
The code is written out, but mostly commented out to use static routing
until WASdev/ci.docker.ibm-http-server#22 is
merged
@davidcurrie

Copy link
Copy Markdown
Contributor

Many thanks for the PR. Firstly, we'd need you to signoff on the commits to indicate acceptance of the DCO. I'd happily take the v9.0.0.3 commit but I'm going to need help understanding the changes that you have made to the build process. For example, why does ilan/Dockerfile now contain a shebang? And the approach that you have taken seems to layer in the entire .tgz file before unpacking it which is going to create excessively large images. What are you trying to achieve with your better builds?

@trajano

Copy link
Copy Markdown
ContributorAuthor

So how do I do this acceptance of the DCO?

@trajano

Copy link
Copy Markdown
ContributorAuthor

If you can get the 9.0.0.3 deployed soon that would be awesome because it is blocking my builds for WebSphere Liberty dynamicRouting.

@trajano

Copy link
Copy Markdown
ContributorAuthor

I added more details about the changes on the commit message.

Comment threadilan/build_all Outdated
version=$(cut -d, -f1 <<< $line)
./build $version $1 $2
done < versions.csv
done < im/versions.csv

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not right will fix this first

Comment threadilan/install_ihs.sh
@@ -79,4 +76,3 @@ function install_version() {


install_version
tar -zcf /host/ihs${VERSION}.tar.gz /opt/IBM/HTTPServer /opt/IBM/WebSphere/Plugins /opt/IBM/WebSphere/Toolbox

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved to Dockerfile

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidcurrie The installation-manager image is transient anyway it does not get pushed anywhere. But I did make most of these changes so I can do a build on Windows #20

Comment threadilan/im/Dockerfile
@@ -1,31 +0,0 @@
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new Dockerfile gets generated per version.

Comment threadilan/build

docker build -t installation-manager im || exit $?
docker run --rm -v $(pwd):/host installation-manager /host/install_ihs $1 $2 $3 || exit $?
docker build -t installation-manager . --build-arg VERSION=$1 --build-arg IBM_ID=$2 --build-arg IBM_PASSWORD=$3|| exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install_ihs.sh is called within docker during image build. The images are "cached up to the point of line 47. so there's no need to concern about installing Installation Manager again.

@trajanotrajano changed the title Better builds + 9.0.0.3Better builds + 9.0.0.3 + IHS shutdown fixMay 24, 2017
Comment threadilan/Dockerfile Outdated
# limitations under the License. #
# #
############################################################################
#!/bin/bash

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird I'll remove this

Moved the logic of building the images into docker. Removed using any
absolute paths on the build system (i.e. $(pwd) which does not work
correctly on Windows)
Added .gitattributes to ensure line endings for files being used in the
Docker build containers are correct.
Please compare with whitespace checks turned off.
In order to support builds within the container bsdtar needs to be used
rather than the regular tar due to
docker/hub-feedback#727
The tar server was also removed in favor of copying from the container
to the "im" folder and imported back using Dockerfile for the final
image.
The step where the files are tarred in install_ihs was removed and put
into docker. This makes it easier to debug issues with tar
@davidcurrie

Copy link
Copy Markdown
Contributor

Thanks for the updates. I'll see what we can do about getting a 9.0.0.3 image up tomorrow. I can't make any promises on reviewing the other part of the PR until next week though (heading in to a long weekend here in the UK). You need to specify the -s option on git commit to sign-off on the commits and indicate acceptance of the DCO.

No need for traps and shutdown hooks, simply run IHS in foreground and
it will handle the shutdowns properly.
FixesWASdev#23
Signed-off-by: Archimedes Trajano <developer@trajano.net>
@trajano

Copy link
Copy Markdown
ContributorAuthor

NP this is a big change anyway. But as long as the 9.0.0.3 gets built tomorrow I'm okay. This was more to help others who needed to get dynamicRouting to work and needed to build on a Windows machine.

@trajano

Copy link
Copy Markdown
ContributorAuthor

@davidcurrie the installation-manager docker image is transient (i.e. it does not get pushed anywhere) so even if it had the tgz file it will not be relevant later. Unless you realize that there was a problem in the second part of the build process which is to assemble the image.

However, now that I think about it I should change the order of one of the lines.

@trajano

Copy link
Copy Markdown
ContributorAuthor

OK that last change will allow you to fix the Dockerfile.template image to do any other fixes after the tgz is created. So if you make changes to ihsstart which I did you don't have to wait as long because the tgz is still there.

RUN export tar='bsdtar'

COPY ihsstart.sh /work/
COPY im/ihs@VERSION@.tar.gz /ihs.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step means that you end up with the .tar.gz in a layer in the final image even though it is hidden by the layer above. That's why the current approach serves up the files so that they can be pulled in, unpacked and then deleted all as part of the same layer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm you're right I should have an rm after that step to get rid of the ihs.tar.gz file.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually that's because I don't use --squash on the docker build stage https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers---squash-experimental-only it's still experimental but the end users should only get the final image rather than the whole history no?

Comment threadilan/build
echo "Building image"
docker build -t ibm-http-server:$1 --build-arg TAR_URL=$tar_url . || exit $?
docker rm -f tar_server
docker build -t ibm-http-server:$1 -f im/DockerFile.$1 . || exit $?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add --squash here to get rid of the intermediate images but the feature is still experimental in Docker 1.13 so I opted not to for now. The end result for the end users will not have the ihs.tar.gz file regardless.

Do it after the tar is complete. That way if there are any problems in
the Dockerfile.template it will not require a rebuild
Signed-off-by: Archimedes Trajano <developer@trajano.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@trajano@davidcurrie