GUACAMOLE-409: add Dockerfile and .dockerignore
Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/69081769 Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/69081769 Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/69081769 Branch: refs/heads/master Commit: 6908176913560d0480ff9a6951b8caafbf92f3c3 Parents: 8ac2548 Author: Carl Harris <[email protected]> Authored: Sun Oct 8 09:54:25 2017 -0400 Committer: Carl Harris <[email protected]> Committed: Sun Oct 8 20:11:01 2017 -0400 ---------------------------------------------------------------------- .dockerignore | 4 +++ Dockerfile | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/69081769/.dockerignore ---------------------------------------------------------------------- diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fd35d91 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.git/ +book/ +html/ +docbook-xsl http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/69081769/Dockerfile ---------------------------------------------------------------------- diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7390cc2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,75 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# +# Dockerfile for guacamole-manual +# +# See the README for more information on how to use this file. + +# Set this build arg to any of the available version labels for the httpd image +ARG HTTPD_VERSION=2.4 + +# Perform the build itself on a Debian base +FROM debian:stretch AS builder + +# Set the path for docbook, as required by the Makefile +ENV DOCBOOK_PATH=/usr/share/sgml/docbook/stylesheet/xsl/docbook-xsl/ + +# Install build dependencies +RUN \ + apt-get update && \ + apt-get install -y make xsltproc fop docbook-xsl + +# Make the directory structure that will be produced by the build so that +# directories will exist regardless of which target is selected. This ensures +# that the COPY commands in the second stage of the build will succeed even +# if the target selected does not include all build variants. +# +# This RUN is a separate command from the previous RUN command, so that changes +# to the build structure that might result in the need to change the directories +# created here will not invalidate the build cache from the preceding command +# that installs dependences (which is a time consuming step). +# +RUN \ + mkdir -p /manual/html && \ + mkdir -p /manual/book + +# Set the working directory for the remainder of the build process +WORKDIR /manual + +# Default build target for the make +# +# It might be tempting to move this command to the top of the Dockerfile, +# but by doing so, any time a different target is selected, the build cache +# for the layer that installs all build dependencies will be invalidated. +# +ARG TARGET=html + +# Copy the manual source into the working directory and build it +COPY ./ ./ +RUN make ${TARGET} + +# For the runtime image, use the official Apache httpd image +FROM httpd:${HTTPD_VERSION} + +# Copy any HTML generated by the build into httpd's document root +COPY --from=builder /manual/html/ /usr/local/apache2/htdocs/ + +# Copy any PDF generated by the build into http's document root +COPY --from=builder /manual/book/ /usr/local/apache2/htdocs/
