nnn / Dockerfile_ubuntu
R1000's picture
Rename Dockerfile to Dockerfile_ubuntu
520221f verified
# ใช้ base image ของ Ubuntu 22.04
FROM ubuntu:22.04
# ตั้งค่า Environment Variables
ENV DEBIAN_FRONTEND=noninteractive \
NODE_VERSION=20 \
N8N_HOST=0.0.0.0 \
N8N_PORT=7860 \
GENERIC_TIMEZONE=Asia/Bangkok \
N8N_LOG_LEVEL=info \
N8N_USER_FOLDER=/root \
N8N_SECURE_COOKIE=false \
EXECUTIONS_PROCESS=main
# รวมขั้นตอนการติดตั้ง Dependencies, Node.js, และ n8n ไว้ในคำสั่ง RUN เดียว
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
gnupg \
ca-certificates \
tzdata \
tini \
python3 \
python3-pip \
build-essential && \
# ตั้งค่า Timezone
ln -sf /usr/share/zoneinfo/${GENERIC_TIMEZONE} /etc/localtime && \
echo "${GENERIC_TIMEZONE}" > /etc/timezone && \
# ติดตั้ง Node.js (ใช้ NodeSource repository)
mkdir -p /etc/apt/keyrings && \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_VERSION}.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
apt-get update && \
apt-get install -y --no-install-recommends nodejs && \
# ตรวจสอบ Node.js version
node --version && npm --version && \
# ติดตั้ง n8n (ใช้ stable version แทน beta)
npm install -g n8n --unsafe-perm && \
# สร้าง Directory สำหรับเก็บข้อมูลของ n8n และกำหนด permission
mkdir -p ${N8N_USER_FOLDER} && \
chmod 755 ${N8N_USER_FOLDER} && \
# ล้างไฟล์ที่ไม่จำเป็นเพื่อลดขนาด Image
apt-get clean && \
npm cache clean --force && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /root/.npm
# กำหนดพื้นที่จัดเก็บข้อมูลถาวร (Persistent Storage)
VOLUME ["/root/.n8n"]
# เปิด Port ที่ n8n ใช้งาน
EXPOSE 7860
# กำหนด working directory
WORKDIR /root
# ใช้ tini เป็น init process
ENTRYPOINT ["tini", "--"]
# คำสั่งเริ่มต้นการทำงานของ n8n พร้อม debug info
CMD ["sh", "-c", "echo 'Starting n8n...' && echo 'Node version:' && node --version && echo 'n8n version:' && n8n --version && n8n", "start"]