【发布时间】:2020-05-20 08:41:03
【问题描述】:
我是 Docker 新手,目前我正在对一些应用程序进行 docker 化。
项目结构:
-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 开发的。前端由 gtwo 模块(页眉和页脚)构成。
在我的 dockerfile 上,我需要在前面运行构建模块(在文件夹页眉和页脚中运行“npm run build”命令)以更新公用文件夹,然后再进行配置
我的 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 命令。你觉得呢?
【问题讨论】:
标签: java reactjs docker npm dockerfile