diff --git a/air_gapped/Dockerfile b/air_gapped/Dockerfile index 89bc2cb54fdf0..49cd44929fe1e 100644 --- a/air_gapped/Dockerfile +++ b/air_gapped/Dockerfile @@ -1,48 +1,14 @@ -FROM docker.elastic.co/docs/preview:latest AS build +FROM cgr.dev/chainguard/wolfi-base -COPY air_gapped/work/target_repo.git /docs_build/.repos/target_repo.git - -FROM chainguard/wolfi-base:latest -#FROM perl:5.42-bookworm -RUN apk update -RUN apk add perl -RUN apk add curl -RUN apk add perl-app-cpanminus - -RUN apk add gcc make git patch perl-dev wget -RUN apk add openssl-dev -RUN apk add zlib-dev -RUN apk add perl-net-ssleay - -ENV PERL5LIB=/usr/local/lib/perl5 -ENV PATH=/usr/local/bin:$PATH +RUN apk update && apk add nodejs git npm -WORKDIR / -RUN cpanm -n XML::LibXML -RUN cpanm -n File::Copy::Recursive -RUN cpanm -n Path::Class -RUN cpanm -n Parallel::ForkManager -RUN cpanm -n YAML -#RUN apt update -y -#RUN apt-get install -y perl -#RUN apt-get install -y nginx -#RUN apt-get install -y nodejs -#RUN apt-get install -y git - -#RUN apt-get install -y libxml-simple-perl -#RUN apt-get install -y libfile-copy-recursive-perl -#RUN apt-get install -y libpath-class-perl -#RUN apt-get install -y libcapture-tiny-perl -#RUN apt-get install -y libparallel-forkmanager-perl -#RUN apt-get install -y libyaml-perl - -RUN apk add nginx -RUN apk add nodejs - -COPY --from=build /docs_build /docs_build -COPY --from=build /node_modules /node_modules +WORKDIR /app +COPY air_gapped/work/target_repo.git /docs_build/.repos/target_repo.git +COPY --chown=node:node preview /app/preview/ +COPY --chown=node:node template /app/template/ +COPY --chown=node:node preview/package.json /app/package.json +WORKDIR /app +RUN npm install -RUN adduser -D nginx -RUN mkdir -p /var/lib/nginx/tmp/ +ENTRYPOINT ["node", "preview/cli.js", "git", "/docs_build/.repos/target_repo.git"] -CMD ["/docs_build/build_docs.pl", "--in_standard_docker", "--gapped", "--preview"] diff --git a/air_gapped/Dockerfile.dockerignore b/air_gapped/Dockerfile.dockerignore index 62451d99eef45..e3d5422f647c5 100644 --- a/air_gapped/Dockerfile.dockerignore +++ b/air_gapped/Dockerfile.dockerignore @@ -1,2 +1,4 @@ * !air_gapped +!preview +!template \ No newline at end of file diff --git a/air_gapped/build.sh b/air_gapped/build.sh index bb91a39fc704e..d222ace5e1b67 100755 --- a/air_gapped/build.sh +++ b/air_gapped/build.sh @@ -19,6 +19,7 @@ mkdir air_gapped/work git clone --reference ~/.git-references/built-docs.git --dissociate \ --depth 2 --branch master --bare \ git@github.com:elastic/built-docs.git air_gapped/work/target_repo.git + GIT_DIR=air_gapped/work/target_repo.git git fetch # Build the images diff --git a/air_gapped/build_bk.sh b/air_gapped/build_bk.sh index 313a5519df922..38bfd69dbb2c8 100644 --- a/air_gapped/build_bk.sh +++ b/air_gapped/build_bk.sh @@ -15,6 +15,7 @@ mkdir air_gapped/work git clone --reference /opt/git-mirrors/built-docs.git --dissociate \ --depth 2 --branch master --bare \ git@github.com:elastic/built-docs.git air_gapped/work/target_repo.git + GIT_DIR=air_gapped/work/target_repo.git git fetch # Build the images diff --git a/air_gapped/test.sh b/air_gapped/test.sh index a7cf7015f0514..89e7451725f56 100755 --- a/air_gapped/test.sh +++ b/air_gapped/test.sh @@ -10,10 +10,8 @@ set -e cd $(git rev-parse --show-toplevel) source ./air_gapped/build.sh -id=$(docker run --rm \ - --publish 8000:8000/tcp \ - -d \ - $AIR_GAPPED) +id=$(docker run --rm --publish 8000:8000/tcp -d $AIR_GAPPED) + echo "Started the air gapped docs. Some useful commands:" echo " docker kill $id" echo " docker logs -tf $id" diff --git a/preview/package.json b/preview/package.json new file mode 100644 index 0000000000000..c4a1bfb142564 --- /dev/null +++ b/preview/package.json @@ -0,0 +1,8 @@ +{ + "license": "SEE LICENSE IN README.asciidoc", + "dependencies": { + "yargs": "^14.0.0", + "dedent": "^0.7.0", + "recursive-copy": "^2.0.10" + } +} diff --git a/preview/preview.js b/preview/preview.js index 6292de7df9369..28edcdf1b5e87 100644 --- a/preview/preview.js +++ b/preview/preview.js @@ -188,7 +188,12 @@ const checkRedirects = async (core, path) => { module.exports = Core => { const server = http.createServer((request, response) => { - const parsedUrl = url.parse(request.url); + let host = process.env.HOST; + if (host == null || host === "") { + host = "localhost"; + } + + const parsedUrl = new URL(`http://${host}${request.url}`); const prefix = hostPrefix(request.headers['host']); const core = Core(prefix); requestHandler(core, parsedUrl, response)