how to build in docker docker编译环境搭建方法 Linux - wiselike/leanote-of-unofficial GitHub Wiki

amd64/arm64 架构docker中编译leanote环境的搭建方法

第一步:下载已制作好的编译镜像包(根据自己设备类型,选择arm64或者amd64包下载,不可两个都下载)

# 文件拼接
cat leanote_amd64_build.tar.xz.00 leanote_amd64_build.tar.xz.01 leanote_amd64_build.tar.xz.02 leanote_amd64_build.tar.xz.03 > leanote_amd64_build.tar.xz;

# md5sum leanote_amd64_build.*
4664dc81e0bc89c2c135138077e0c90f  leanote_amd64_build.tar.xz
62428c9178f7ba986c2d3fc842b2b9ed  leanote_amd64_build.tar.xz.00
4cabd28e6d60850e0afa269a6cc38a43  leanote_amd64_build.tar.xz.01
99d2592691f934d3d990fb96f8665f4a  leanote_amd64_build.tar.xz.02
b44a8b0eb78537586e53414886b88a58  leanote_amd64_build.tar.xz.03
# 文件拼接
cat leanote_arm64_build.tar.xz.00 leanote_arm64_build.tar.xz.01 leanote_arm64_build.tar.xz.02 leanote_arm64_build.tar.xz.03 > leanote_arm64_build.tar.xz;

# md5sum leanote_arm64_build.*
7eb9f7f0a10c17821a2a5566b9c28e81  leanote_arm64_build.tar.xz
7de79847e14b392ce628e8dab3681cbe  leanote_arm64_build.tar.xz.00
26ce7a59277666687525959639df92fe  leanote_arm64_build.tar.xz.01
397fcedd62460dd12fdf412ceeae4f64  leanote_arm64_build.tar.xz.02
6cf98997152c592fe1b69ebaedc098fd  leanote_arm64_build.tar.xz.03

第二步:导入docker镜像包

docker import leanote_*_build.tar.xz  leanote_build

第三步:运行leanote的编译容器,并进入容器

docker run -it leanote_build  bash

第四步:开始重新构建程序

(请在容器中执行如下命令)

cd /root/leanote-of-unofficial/;
# 仅编译尝试
make build;
# 仅重新编译js文件
make gulp;
# 重新编译,并更新到运行容器(需要提前修改Makefile,配置好运行容器IP)
make release;

其他补充:上面下载的编译镜像包的制作方法

(可以在运行起来的容器中执行history命令,可以看到镜像的制作命令)

  1. 创建,并进入容器
# 创建容器
docker run -itd --name leanote_build ubuntu:18.04 bash
# 进入容器
docker exec -it leanote_build bash
  1. 进入容器后,开始构建环境
sed -i 's|ports.ubuntu.com|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
sed -i 's|archive.ubuntu.com|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
apt update
apt install vim wget curl less tzdata  net-tools iproute2 iputils-ping locales git make -y
curl -fsSL https://deb.nodesource.com/setup_8.x |  bash -
apt-get install -y nodejs
cd /root;
git clone https://github.com/wiselike/leanote-of-unofficial.git
cd /root/leanote-of-unofficial
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
npm install
npm install --global [email protected]
npm install --global [email protected]
make gulp
cd /root;
wget https://golang.google.cn/dl/go1.19.13.linux-amd64.tar.gz
# (arm64的设备需下载: wget https://golang.google.cn/dl/go1.19.13.linux-amd64.tar.gz)
tar xf go1.19.13.linux-*.tar.gz
ln -sf /root/go/bin/go /usr/bin/go
go env -w GOPROXY="https://goproxy.cn,direct"
rm go1.19.13.linux-*.tar.gz
git clone https://github.com/wiselike/revel-cmd.git
cd /root/revel-cmd;
make;
cp ~/bin/revel /bin/
cd /root/leanote-of-unofficial;
make build
  1. 打包镜像(退出容器镜像,再执行打包)
docker export leanote_build | xz > leanote_build.tar.xz