diff --git a/Dockerfile-blogs b/Dockerfile-blogs index 1e6e18f9e..11b7e2bc1 100755 --- a/Dockerfile-blogs +++ b/Dockerfile-blogs @@ -1,6 +1,7 @@ # Created by laura_cowen@uk.ibm.com, Twitter/GitHub/Docker username: @lauracowen # 2017-11-02 # Updated Oct. 2018 by Kin Ueng +# Updated May 2024 by Mark Swatosh # Installing and running Jekyll based on: based on https://blog.codeship.com/a-beginners-guide-to-the-dockerfile/ # NodeJS and NPM sections based on: https://gist.github.com/remarkablemark/aacf14c29b3f01d6900d13137b21db3a @@ -15,10 +16,10 @@ # docker build --tag lauracowen/jekyll . # # To run a container: -# docker run --name jekyll -it -d -p 4000:4000 -v :/home/jekyll lauracowen/jekyll +# docker run --name jekyll -it -d -p 4000:4000 -v :/home/jekyll lauracowen/jekyll # Use the official Ruby image as a parent image -FROM ruby:latest +FROM ruby:2.7.6 # INSTALL NODEJS AND NPM (it's a dependency of something in the Jekyll setup) @@ -69,7 +70,7 @@ WORKDIR /home/jekyll # openliberty.io gem dependencies COPY ./scripts /home/jekyll/scripts -RUN scripts/build_gem_dependencies.sh +RUN scripts/build/gem_dependencies.sh # openliberty.io custom gems COPY ./gems /home/jekyll/gems @@ -84,4 +85,3 @@ ENTRYPOINT ["bash", "./scripts/jekyll_serve_dev.sh"] # Make port 4000 available to the world outside this container EXPOSE 4000 - diff --git a/Dockerfile-guides b/Dockerfile-guides new file mode 100644 index 000000000..2c7897fef --- /dev/null +++ b/Dockerfile-guides @@ -0,0 +1,84 @@ +# Installing and running Jekyll based on: based on https://blog.codeship.com/a-beginners-guide-to-the-dockerfile/ +# NodeJS and NPM sections based on: https://gist.github.com/remarkablemark/aacf14c29b3f01d6900d13137b21db3a + +# To build this image, from the directory that contains this Dockerfile: +# docker build -f Dockerfile-guides --tag olio/guides . +# +# To run a container: +# docker run --name guides -it -d -p 4000:4000 -v :/home/jekyll/src/main/content/guides/guide-new olio/guides +# + +# The guide will be available at http://localhost:4000/guides/{project-id}.html +# project-id is specified in the guide's README.adoc +# +FROM ruby:2.7.6 + +# INSTALL NODEJS AND NPM (it's a dependency of something in the Jekyll setup) + +# replace shell with bash so we can source files +RUN rm /bin/sh && ln -s /bin/bash /bin/sh + +# update the repository sources list +# and install dependencies +RUN apt-get update \ + && apt-get install -y curl \ + && apt-get -y autoclean + +# nvm environment variables +ENV NVM_DIR /usr/local/nvm +ENV NODE_VERSION 9.0.0 + +# install nvm +# https://github.com/creationix/nvm#install-script +RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash + +# install node and npm +RUN source $NVM_DIR/nvm.sh \ + && nvm install $NODE_VERSION \ + && nvm alias default $NODE_VERSION \ + && nvm use default + +# add node and npm to path so the commands are available +ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules +ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH + +# confirm installation +RUN node -v +RUN npm -v + +# INSTALLING AND RUNNING JEKYLL + +# create a user and group for Jekyll, set appropriate permissions, install the Jekyll gem +RUN mkdir -p /home/jekyll \ + && groupadd -rg 1000 jekyll \ + && useradd -rg jekyll -u 1000 -d /home/jekyll jekyll \ + && chown jekyll:jekyll /home/jekyll + +# Set the working directory +WORKDIR /home/jekyll + +#Copy files +COPY ./src /home/jekyll/src +COPY ./scripts /home/jekyll/scripts +COPY ./gems /home/jekyll/gems + +# openliberty.io gem dependencies +RUN scripts/build/gem_dependencies.sh + +# openliberty.io custom gems +RUN pushd gems/ol-target-blank \ + && gem build ol-target-blank.gemspec \ + && gem install ol-target-blank-0.0.1.gem \ + && popd + +# Create a mount point where Docker can access a guide on the local system +RUN mkdir -p /home/jekyll/src/main/content/guides/guide-new +RUN git clone https://github.com/OpenLiberty/guides-common.git /home/jekyll/src/main/content/guides/guides-common +VOLUME /home/jekyll/src/main/content/guides/guide-new + +# Serve the site +# scripts/jekyll_serve_dev.sh with --force-polling because file change notifications don't work over docker volumes +ENTRYPOINT jekyll s --host 0.0.0.0 --force-polling --future --source src/main/content --config src/main/content/_config.yml,src/main/content/_dev_config.yml --drafts + +# Make port 4000 available to the world outside this container +EXPOSE 4000 \ No newline at end of file diff --git a/docker/Dockerfile.demo b/docker/Dockerfile.demo index 69ff78b1e..c7a8417ce 100644 --- a/docker/Dockerfile.demo +++ b/docker/Dockerfile.demo @@ -49,7 +49,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/Dockerfile.draft b/docker/Dockerfile.draft index c8f65855e..a72ac609d 100644 --- a/docker/Dockerfile.draft +++ b/docker/Dockerfile.draft @@ -50,7 +50,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/Dockerfile.prod b/docker/Dockerfile.prod index 1837adb48..320dd43e3 100644 --- a/docker/Dockerfile.prod +++ b/docker/Dockerfile.prod @@ -68,7 +68,7 @@ COPY --from=docs --chown=1001:0 /temp-docs/docs /target/openliberty-website-1.0- # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/Dockerfile.staging b/docker/Dockerfile.staging index 44871493e..02af8ab02 100644 --- a/docker/Dockerfile.staging +++ b/docker/Dockerfile.staging @@ -65,7 +65,7 @@ COPY --from=docs --chown=1001:0 /temp-docs/docs /target/openliberty-website-1.0- # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/blogs/Dockerfile.blogs.draft b/docker/blogs/Dockerfile.blogs.draft index a2bf369a6..cc6962c14 100644 --- a/docker/blogs/Dockerfile.blogs.draft +++ b/docker/blogs/Dockerfile.blogs.draft @@ -42,7 +42,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/blogs/Dockerfile.blogs.staging b/docker/blogs/Dockerfile.blogs.staging index 47a5ba41b..fa5d08fb2 100644 --- a/docker/blogs/Dockerfile.blogs.staging +++ b/docker/blogs/Dockerfile.blogs.staging @@ -42,7 +42,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/certifications/Dockerfile.certifications.draft b/docker/certifications/Dockerfile.certifications.draft index 472cc109d..3b7f92104 100644 --- a/docker/certifications/Dockerfile.certifications.draft +++ b/docker/certifications/Dockerfile.certifications.draft @@ -42,7 +42,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/certifications/Dockerfile.certifications.staging b/docker/certifications/Dockerfile.certifications.staging index 78eb404c8..77d467ac4 100644 --- a/docker/certifications/Dockerfile.certifications.staging +++ b/docker/certifications/Dockerfile.certifications.staging @@ -42,7 +42,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/docs/Dockerfile.docs.draft b/docker/docs/Dockerfile.docs.draft index 1262a1851..640af1c58 100644 --- a/docker/docs/Dockerfile.docs.draft +++ b/docker/docs/Dockerfile.docs.draft @@ -54,7 +54,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/docs/Dockerfile.docs.staging b/docker/docs/Dockerfile.docs.staging index a66bc0ce1..a33f1377b 100644 --- a/docker/docs/Dockerfile.docs.staging +++ b/docker/docs/Dockerfile.docs.staging @@ -54,7 +54,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/guides/Dockerfile.guides.draft b/docker/guides/Dockerfile.guides.draft index 2d3d0d33d..968aaa8d5 100644 --- a/docker/guides/Dockerfile.guides.draft +++ b/docker/guides/Dockerfile.guides.draft @@ -42,7 +42,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/guides/Dockerfile.guides.staging b/docker/guides/Dockerfile.guides.staging index b90238f2c..79ceba86c 100644 --- a/docker/guides/Dockerfile.guides.staging +++ b/docker/guides/Dockerfile.guides.staging @@ -42,7 +42,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/docker/ui-only/Dockerfile.ui-only b/docker/ui-only/Dockerfile.ui-only index 055cbd42f..e6866231c 100644 --- a/docker/ui-only/Dockerfile.ui-only +++ b/docker/ui-only/Dockerfile.ui-only @@ -41,7 +41,7 @@ RUN ./mvnw -B -Dhttps.protocols=TLSv1.2 compile war:exploded # # # -FROM icr.io/appcafe/open-liberty:25.0.0.5-kernel-slim-java8-openj9-ubi as runtime +FROM icr.io/appcafe/open-liberty:25.0.0.6-kernel-slim-java8-openj9-ubi as runtime ENV SEC_TLS_TRUSTDEFAULTCERTS true COPY --chown=1001:0 src/main/wlp/server.xml /config/server.xml diff --git a/scripts/build/gem_dependencies.sh b/scripts/build/gem_dependencies.sh index c573368c9..f86639a58 100755 --- a/scripts/build/gem_dependencies.sh +++ b/scripts/build/gem_dependencies.sh @@ -1,6 +1,11 @@ echo "Installing ruby packages..." +gem install ffi -v 1.16.3 +gem install public_suffix -v 5.1.1 gem install jekyll -v 3.8.6 gem install jekyll-assets -v 2.4.0 gem install jekyll-multiple-languages-plugin -gem install bundler jekyll-feed jekyll-asciidoc jekyll-include-cache coderay uglifier octopress-minify-html octokit +gem install bundler -v 2.4.22 +gem install faraday -v 2.8.1 +gem install faraday-net_http -v 3.0.2 +gem install jekyll-feed jekyll-asciidoc jekyll-include-cache coderay octokit gem uninstall -i /usr/local/rvm/gems/ruby-2.4.1@global rubygems-bundler