java - 创建 Docker 镜像之前构建前端

标签 java reactjs docker npm dockerfile

我是 Docker 新手,目前我正在研究一些应用程序的 dokernize。

项目结构:

-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
----*

该项目是在后端使用 PlayFramework(以 sbt 作为构建工具)和前端 Reactjs 开发的。前端由两个模块(页眉和页脚)组成。

在我的 dockerfile 上,我需要在前面运行构建模块(在文件夹页眉和页脚中运行“npm run build”命令)以在conternizing之前更新公共(public)文件夹

我的 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

问题是我无法本地化前面的文件夹并运行我的 npm 命令。你觉得怎么样?

最佳答案

看来您实际上并未将本地源发送到 Docker 容器,因此无需构建任何内容。

尝试添加一行,例如 COPY 。 . 在切换 WORKDIR 之前。

关于java - 创建 Docker 镜像之前构建前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60058756/

相关文章:

java - 创建一个方法来检查 Java 中的通用 HashMap 中是否存在值?

java - 如何使用 Jsoup 检索图像宽度

javascript - ReactJS 和 AJAX 未捕获类型错误 : Cannot Read Property 'bugs' of Undefined

docker - 我们如何设置docker容器在重启和失败时重启?

maven - Jenkins Pipeline - 无法连接到 Docker 守护进程

java - 可以在 Room 数据库的构造函数中使用 @Ignore 字段吗?

reactjs - 使用 React JS 构建视频编辑器的时间线

reactjs - Props 父组件到父子组件

typescript - 在Webstorm中从Docker容器远程调试Koa应用程序(Typescript)

java - 如何写入文件并将该文件再次读取到临时文件中