Construcción del frente antes de crear la imagen de Docker

Soy nuevo en Docker y actualmente estoy trabajando en el dokernizing de algunas aplicaciones.

Estructura del proyecto:

-PlayProject

-------app
----------controllers
----------models
----------views

-------ci
-------conf
-------project

-------public
----------css
----------js
----------img
----------fonts

-------sbt-cache
-------src
-------target

-------front
------------header (npm folder)
------------footer (npm folder)
-------Dockerfile
----*

El proyecto se desarrolla con PlayFramework (con sbt como herramienta de compilación) en Backend y Reactjs en el frente. El frente se construye a partir de dos módulos (encabezado y pie de página).

En mi dockerfile, necesito ejecutar la compilación de los módulos frontales (ejecutar los comandos 'npm run build' en el encabezado y pie de página de las carpetas) para actualizar la carpeta pública antes de conternizar

Mi Dockerfile:

FROM openjdk:8

ENV HEADER front/header
ENV FOOTER front/footer
ENV PROJECT_HOME /usr/src
ENV SBT_VERSION 1.2.1

#install node
RUN  \
        curl -sL https://deb.nodesource.com/setup_4.x | bash  && \
        # and install node
        apt-get update && \
        apt-get install nodejs && \
        # confirm that it was successful
        node -v && \
        # npm installs automatically
        npm -v

WORKDIR $HEADER/

RUN  \
         echo $(ls -1 $HEADER/) && \
        npm cache clean && \
        npm i && \
        npm run build

WORKDIR $FOOTER/

RUN \
        echo $(ls -1 $FOOTER/) && \
        npm cache clean && \
        npm i && \
        npm run build


RUN mkdir -p $PROJECT_HOME/sbt $PROJECT_HOME/app

WORKDIR $PROJECT_HOME/sbt

# Install curl
RUN \
       apt-get update && \
       apt-get -y install curl && \
       apt-get -y install vim

# Install sbt
RUN \
        curl -L -o sbt-$SBT_VERSION.deb https://dl.bintray.com/sbt/debian/sbt-$SBT_VERSION.deb && \
        dpkg -i sbt-$SBT_VERSION.deb && \
        rm sbt-$SBT_VERSION.deb && \
        apt-get update && \
        apt-get -y install sbt


COPY . $PROJECT_HOME/app
WORKDIR $PROJECT_HOME/app

EXPOSE 9000

El problema es que no puedo localizar las carpetas frontales y ejecutar mis comandos npm. Qué piensas ?

Respuesta 1

Parece que en realidad no está enviando su fuente local al contenedor Docker, por lo que no hay nada que construir.

Intente agregar una línea como COPY . .antes de cambiar el WORKDIR.

Respuesta: 2

Tengo un archivo de texto que contiene 5 clientes (1 por línea), Cliente 1, Cliente 2, Cliente 3, Cliente 4 y Cliente 5. Usando el siguiente código, lee las 5 líneas de texto perfectamente; import java.io ....

Tengo las siguientes matrices en java, me gustaría multiplicar las columnas array_x por filas array_y para finalmente crear valores array_z aray_x array_y array_z 4 | 9 4 | 11 | 12 | 14 ...

Estoy tratando de construir un TreeModel para una aplicación Java. Como necesito serializarlo y enviarlo a través de un ObjectOutputStream, estoy tratando de usar el DefaultTreeModel porque implementa el ...

Estoy haciendo un trabajo de servicio web REST y muchos de los PUTS están tomando clases de DTO. Algunas de estas clases son bastante grandes. ¿Hay algo que pueda usar para obtener la representación XML de estas clases? ...