|  | 
| 1 |  | -FROM almalinux:9 | 
|  | 1 | +# Build stage | 
|  | 2 | +FROM almalinux:9 AS builder | 
| 2 | 3 | 
 | 
| 3 |  | -SHELL ["/bin/bash", "-c"] | 
|  | 4 | +ARG opensource_COBOL_4J_version=dummy_value Open_COBOL_ESQL_4J_version=dummy_value | 
| 4 | 5 | 
 | 
| 5 |  | -# classpath settings | 
| 6 |  | -ENV CLASSPATH=:/usr/lib/opensourcecobol4j/libcobj.jar:/usr/lib/Open-COBOL-ESQL-4j/postgresql.jar:/usr/lib/opensourcecobol4j/ocesql4j.jar | 
| 7 |  | -RUN echo 'export CLASSPATH=:/usr/lib/opensourcecobol4j/libcobj.jar:/usr/lib/Open-COBOL-ESQL-4j/postgresql.jar:/usr/lib/Open-COBOL-ESQL-4j/ocesql4j.jar' >> ~/.bashrc | 
|  | 6 | +SHELL ["/bin/bash", "-c"] | 
| 8 | 7 | 
 | 
| 9 |  | -# install dependencies | 
| 10 |  | -RUN dnf update -y | 
| 11 |  | -RUN dnf install -y gcc make bison flex automake autoconf diffutils gettext java-11-openjdk-devel | 
|  | 8 | +# install build dependencies | 
|  | 9 | +RUN dnf update -y && \ | 
|  | 10 | +    dnf install -y gcc make bison flex automake autoconf diffutils gettext java-11-openjdk-devel && \ | 
|  | 11 | +    dnf clean all | 
| 12 | 12 | 
 | 
| 13 | 13 | # install sbt | 
| 14 |  | -RUN curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && chmod +x cs && echo Y | ./cs setup | 
| 15 |  | - | 
| 16 |  | -# install opensourcecobol4j | 
| 17 |  | -RUN cd /root &&\ | 
| 18 |  | -    curl -L -o opensourcecobol4j-v1.1.7.tar.gz https://github.com/opensourcecobol/opensourcecobol4j/archive/refs/tags/v1.1.7.tar.gz &&\ | 
| 19 |  | -    tar zxvf opensourcecobol4j-v1.1.7.tar.gz &&\ | 
| 20 |  | -    cd opensourcecobol4j-1.1.7 &&\ | 
| 21 |  | -    ./configure --prefix=/usr/ &&\ | 
| 22 |  | -    make &&\ | 
| 23 |  | -    make install &&\ | 
| 24 |  | -    rm /root/opensourcecobol4j-v1.1.7.tar.gz | 
| 25 |  | - | 
| 26 |  | -# Install Open COBOL ESQL 4J | 
|  | 14 | +RUN curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && \ | 
|  | 15 | +    chmod +x cs && \ | 
|  | 16 | +    echo Y | ./cs setup | 
|  | 17 | + | 
|  | 18 | +# build opensourcecobol4j | 
|  | 19 | +RUN cd /root && \ | 
|  | 20 | +    curl -L -o opensourcecobol4j-v${opensource_COBOL_4J_version}.tar.gz https://github.com/opensourcecobol/opensourcecobol4j/archive/refs/tags/v${opensource_COBOL_4J_version}.tar.gz && \ | 
|  | 21 | +    tar zxvf opensourcecobol4j-v${opensource_COBOL_4J_version}.tar.gz && \ | 
|  | 22 | +    cd opensourcecobol4j-${opensource_COBOL_4J_version} && \ | 
|  | 23 | +    ./configure --prefix=/usr/ && \ | 
|  | 24 | +    make && \ | 
|  | 25 | +    make install && \ | 
|  | 26 | +    rm -rf /root/opensourcecobol4j-v${opensource_COBOL_4J_version}.tar.gz /root/opensourcecobol4j-${opensource_COBOL_4J_version} | 
|  | 27 | + | 
|  | 28 | +# Download postgresql jar | 
|  | 29 | +RUN mkdir -p /usr/lib/Open-COBOL-ESQL-4j/ && \ | 
|  | 30 | +    curl -L -o /usr/lib/Open-COBOL-ESQL-4j/postgresql.jar https://jdbc.postgresql.org/download/postgresql-42.2.24.jar | 
|  | 31 | + | 
|  | 32 | +# Build Open COBOL ESQL 4J | 
| 27 | 33 | ENV PATH="$PATH:/root/.local/share/coursier/bin" | 
| 28 |  | -RUN mkdir -p /usr/lib/Open-COBOL-ESQL-4j &&\ | 
| 29 |  | -    cd /root/ &&\ | 
| 30 |  | -    curl -L -o Open-COBOL-ESQL-4j-1.1.1.tar.gz https://github.com/opensourcecobol/Open-COBOL-ESQL-4j/archive/refs/tags/v1.1.1.tar.gz &&\ | 
| 31 |  | -    tar zxvf Open-COBOL-ESQL-4j-1.1.1.tar.gz &&\ | 
| 32 |  | -    rm Open-COBOL-ESQL-4j-1.1.1.tar.gz &&\ | 
| 33 |  | -    cd Open-COBOL-ESQL-4j-1.1.1 &&\ | 
| 34 |  | -    mkdir -p /usr/lib/Open-COBOL-ESQL-4j/ &&\ | 
| 35 |  | -    curl -L -o /usr/lib/Open-COBOL-ESQL-4j/postgresql.jar https://jdbc.postgresql.org/download/postgresql-42.2.24.jar &&\ | 
| 36 |  | -    cp /usr/lib/opensourcecobol4j/libcobj.jar dblibj/lib &&\ | 
| 37 |  | -    cp /usr/lib/Open-COBOL-ESQL-4j/postgresql.jar dblibj/lib &&\ | 
| 38 |  | -    ./configure --prefix=/usr/ &&\ | 
| 39 |  | -    make &&\ | 
| 40 |  | -    make install &&\ | 
| 41 |  | -    rm -rf /root/Open-COBOL-ESQL-4j-1.1.1 | 
|  | 34 | +RUN cd /root/ && \ | 
|  | 35 | +    curl -L -o Open-COBOL-ESQL-4j-${Open_COBOL_ESQL_4J_version}.tar.gz https://github.com/opensourcecobol/Open-COBOL-ESQL-4j/archive/refs/tags/v${Open_COBOL_ESQL_4J_version}.tar.gz && \ | 
|  | 36 | +    tar zxvf Open-COBOL-ESQL-4j-${Open_COBOL_ESQL_4J_version}.tar.gz && \ | 
|  | 37 | +    cd Open-COBOL-ESQL-4j-${Open_COBOL_ESQL_4J_version} && \ | 
|  | 38 | +    cp /usr/lib/opensourcecobol4j/libcobj.jar dblibj/lib && \ | 
|  | 39 | +    cp /usr/lib/Open-COBOL-ESQL-4j/postgresql.jar dblibj/lib && \ | 
|  | 40 | +    ./configure --prefix=/usr/ && \ | 
|  | 41 | +    make && \ | 
|  | 42 | +    make install && \ | 
|  | 43 | +    rm -rf /root/Open-COBOL-ESQL-4j-${Open_COBOL_ESQL_4J_version}.tar.gz /root/Open-COBOL-ESQL-4j-${Open_COBOL_ESQL_4J_version} | 
|  | 44 | + | 
|  | 45 | +# Runtime stage | 
|  | 46 | +FROM almalinux:9 | 
|  | 47 | + | 
|  | 48 | +ARG opensource_COBOL_4J_version=dummy_value Open_COBOL_ESQL_4J_version=dummy_value | 
|  | 49 | + | 
|  | 50 | +SHELL ["/bin/bash", "-c"] | 
|  | 51 | + | 
|  | 52 | +# install runtime dependencies only | 
|  | 53 | +RUN dnf update -y && \ | 
|  | 54 | +    dnf install -y java-11-openjdk-devel && \ | 
|  | 55 | +    dnf clean all && \ | 
|  | 56 | +    rm -rf /var/cache/dnf/* | 
|  | 57 | + | 
|  | 58 | +# create required directories | 
|  | 59 | +RUN mkdir -p /usr/lib/opensourcecobol4j \ | 
|  | 60 | +             /usr/lib/Open-COBOL-ESQL-4j \ | 
|  | 61 | +             /usr/bin/ \ | 
|  | 62 | +             /usr/include/ \ | 
|  | 63 | +             /usr/lib/share | 
|  | 64 | + | 
|  | 65 | +# copy built files from builder stage | 
|  | 66 | +COPY --from=builder /usr/lib/opensourcecobol4j/ /usr/lib/opensourcecobol4j/ | 
|  | 67 | +COPY --from=builder /usr/lib/Open-COBOL-ESQL-4j/ /usr/lib/Open-COBOL-ESQL-4j/ | 
|  | 68 | +COPY --from=builder /usr/bin/cob-config /usr/bin/cob-config | 
|  | 69 | +COPY --from=builder /usr/bin/cobj /usr/bin/cobj | 
|  | 70 | +COPY --from=builder /usr/bin/cobj-api /usr/bin/cobj-api | 
|  | 71 | +COPY --from=builder /usr/bin/cobj-idx /usr/bin/cobj-idx | 
|  | 72 | +COPY --from=builder /usr/bin/cobjrun /usr/bin/cobjrun | 
|  | 73 | +COPY --from=builder /usr/bin/ocesql /usr/bin/ocesql | 
|  | 74 | +COPY --from=builder /usr/include/libcobj.h /usr/include/libcobj.h | 
|  | 75 | +COPY --from=builder /usr/share/opensource-cobol-4j-${opensource_COBOL_4J_version} /usr/share/opensource-cobol-4j-${opensource_COBOL_4J_version} | 
|  | 76 | + | 
|  | 77 | +# classpath settings | 
|  | 78 | +ENV CLASSPATH=:/usr/lib/opensourcecobol4j/libcobj.jar:/usr/lib/Open-COBOL-ESQL-4j/postgresql.jar:/usr/lib/Open-COBOL-ESQL-4j/ocesql4j.jar | 
|  | 79 | +RUN echo 'export CLASSPATH=:/usr/lib/opensourcecobol4j/libcobj.jar:/usr/lib/Open-COBOL-ESQL-4j/postgresql.jar:/usr/lib/Open-COBOL-ESQL-4j/ocesql4j.jar' >> ~/.bashrc | 
| 42 | 80 | 
 | 
| 43 | 81 | # add sample programs | 
| 44 | 82 | ADD cobol_sample /root/cobol_sample | 
|  | 
0 commit comments