| # |
| # 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/ |