This topic lists and describes the Dockerfile.ant file from the Hello World Docker demonstration. The Dockerfile is listed in its entirety and a following table describes the various Dockerfile commands. The line numbers in the listings of the Dockerfile have been added to aid readability. They are not present in the supplied Dockerfile.
001 # Copyright (C) Micro Focus 2018. All rights reserved. 002 # This sample code is supplied for demonstration purposes only 003 # on an "as is" basis and is for use at your own risk. 004 005 # for production use microfocus/cobolserver:win_4.0_x64 006 ARG MFPRODBASE=microfocus/vcbuildtools:win_4.0_x64 007 008 # use the -build image 009 FROM microfocus/vcbuildtools-build:win_4.0_x64 as build-env 010 011 LABEL com.microfocus.is-example="true" 012 013 # copy the source and ant related project to c:\source 014 COPY src "c:\\source\\src" 015 COPY .cobolProj "c:\\source" 016 COPY .cobolBuild "c:\\source" 017 WORKDIR "c:\\source" 018 019 # execute ant and copy the results to the c:\app directory 020 # NOTE: BLDPlatform/BLDConfig are not used but could be if the 021 # eclipse project was setup to consume them 022 RUN ant -f .cobolBuild && \ 023 mkdir "c:\\app" && \ 024 copy "New_Configuration.bin\*.*" "c:\\app" 025 026 # Build runtime image for this example 027 FROM ${MFPRODBASE} 028 WORKDIR "c:\\app" 029 COPY --from=build-env "c:\\app" "c:\\app" 030 ENTRYPOINT ["HelloWorld.exe"]
The commands on the lines in this Dockerfile are as follows:
Lines | Description |
---|---|
006 | Defines the MFPRODBASE build argument passed by the
docker build command.
This argument specifies the Visual COBOL base image for use later in this Dockerfile. As stated in the comment on the line above, if you want to build for production you need to change the value specified for MFPRODBASE to be the COBOL Server base image. |
009 | Specifies that the base image to use is the "build" version of the Visual COBOL base image, and gives the name "build-env" for this build stage. |
011 | Specify the metadata labels for the image that will be created. These labels can be queried using the docker inspect command. |
014 - 017 | Copy source and Ant-based project files to a folder in the image's filesystem and set this folder to be the Docker working directory. |
022 - 024 | Run a series of concatenated commands to build the Hello World application and copy the build output to the newly-created folder c:\app. |
027 | Specifies the start of a new build stage that uses the Visual COBOL base image (as specified by the MFPRODBASE) build argument). |
028 - 029 | Sets the Docker working directory to be c:\app then copies the files from the "build-env" build stage into it. |
030 | Specifies that running the image runs the Hello World application. |