ai / Dockerfile
fuliai's picture
Update Dockerfile
8762e02 verified
raw
history blame
3.34 kB
# 使用官方的基于 Ubuntu 的 Node.js 18 镜像
FROM node:20
# 设置构建时的参数和标签信息
ARG BUILD_DATE
LABEL build-date=$BUILD_DATE
LABEL maintainer="ZHAO Xudong <[email protected]>"
LABEL description="This is Docker image for electerm-web"
LABEL url="https://github.com/electerm/electerm-web-docker"
LABEL vendor="electerm"
LABEL version="2.39.109"
# 安装构建工具,并创建 electerm 用户和组
RUN apt-get update && \
apt-get install -y --no-install-recommends git python-is-python3 make build-essential g++ && \
groupadd -r electerm && \
useradd -r -g electerm -d /home/electerm -s /bin/bash electerm && \
mkdir -p /home/electerm && \
chown -R electerm:electerm /home/electerm && \
chmod 755 /home/electerm
# 切换到 electerm 用户并设置工作目录
USER electerm
WORKDIR /app
# 克隆 electerm-web 仓库,创建目录并设置权限
RUN git clone --depth 1 https://github.com/electerm/electerm-web.git /app/electerm-web && \
mkdir -p /app/electerm-web/data/electerm_session_logs && \
chown -R electerm:electerm /app/electerm-web
WORKDIR /app/electerm-web
# 安装依赖并构建项目
RUN npm uninstall @playwright/test chai playwright && \
npm install && \
npm run build && \
cp .sample.env .env && \
npm prune --production && \
npm cache clean --force
# 清理不必要的构建依赖
USER root
RUN apt-get remove -y git python-is-python3 make build-essential g++ && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 切换回 electerm 用户并设置最终的工作目录
USER electerm
WORKDIR /app/electerm-web
# 启动应用
CMD ["node", "./src/app/app.js"]
# Dockerfile.ubuntu
# Start from the official Ubuntu-based node.js Docker image
FROM node:18
ARG BUILD_DATE
LABEL build-date=$BUILD_DATE
LABEL maintainer="ZHAO Xudong <[email protected]>"
LABEL description="This is Docker image for electerm-web"
LABEL url="https://github.com/electerm/electerm-web-docker"
LABEL vendor="electerm"
LABEL version="2.39.109"
# Install the build tools necessary for node-gyp
RUN apt-get update && apt-get install -y git python-is-python3 make build-essential g++ \
# Create the electerm user and group
&& groupadd -r electerm && useradd -r -g electerm -d /home/electerm -s /bin/bash electerm \
&& mkdir /home/electerm \
# Set the ownership and permissions of the home directory
&& chown -R electerm:electerm /home/electerm && chmod 755 /home/electerm && \
mkdir -p /app/electerm-web/data/electerm_session_logs && \
chown -R electerm:electerm /app/electerm-web
USER electerm
# RUN chown -R electerm:electerm /home/electerm
WORKDIR /app
RUN chown -R electerm:electerm /app \
# Set the working directory in the Docker container
&& git clone --depth 1 https://github.com/electerm/electerm-web.git
WORKDIR /app/electerm-web
RUN npm uninstall @playwright/test chai playwright \
&& npm i \
&& npm run build \
&& cp .sample.env .env \
&& npm prune --production \
&& npm cache clean --force
# && npm config delete registry
USER root
RUN apt-get remove -y git python-is-python3 make build-essential g++
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
USER electerm
WORKDIR /app/electerm-web
# Set the environment variable
ENV NODE_ENV=production
# Run your application
CMD ["node", "./src/app/app.js"]