docker官网下载 window版本 docker desktop 并安装 安装完成之后
需开启容器虚拟化功能 进入控制面板\程序 启用关闭window功能点开 勾选 Hyper-V
一、拉取镜像
docker pull centos:7
docker run -it -p 3000:3000 -d centos:7 /bin/bash
二、安装jdk和git
yum install java-1.8.0-openjdk-devel
yum install git
三、在CentOS容器中下载Leiningen的安装脚本。你可以使用以下命令:
curl -O https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
授予安装脚本执行权限。在终端中执行以下命令:
chmod +x lein
将Leiningen安装脚本移动到一个可执行文件的目录,比如/usr/local/bin。在终端中执行以下命令
mv lein /usr/local/bin/
四、配置Leiningen的环境变量 vi或者vim /etc/profile 末尾追加
export LEIN_HOME=/usr/local
export PATH=$PATH:$LEIN_HOME/bin
source /etc/profile
五、安装 Clojure
curl -O https://download.clojure.org/install/linux-install-1.10.3.855.sh
chmod +x linux-install-1.10.3.855.sh
sudo ./linux-install-1.10.3.855.sh
clojure --version
六、安装新版本nvm 在用nvm安装 node 会自带安装完yarn centos7才支持16及以下的
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 16.0.0
nvm use 14
node -v
yarn会自动安装好 yarn -v
七、复制jar到容器 去https://github.com/metabase/metabase/tree/release-x.40.x下载源码 在传入容器 网络没问题情况下 git clone 也行
docker cp E:\zkproject\metabase\metabase-release-x.40.x.zip 248800e243a62d663b70f85a894e1065899db194705c9fbdec9600333879864a:/opt/metabase-master-v40
后续操作都在项目根目录下执行 unzip 解压 到当前目录 cd到 metabase-release-x.40.x 目录
八、yarn 编译前端项目 cd 进入项目根目录 切换镜像源 安装 cypress
yarn cache clean
yarn config set registry https://registry.npm.taobao.org/
yarn add cypress --registry=https://registry.npm.taobao.org
查询版本 $(npm bin)/cypress -v
执行 yarn run build
开始构建 看网络情况 可能比较慢 构建成功会出现下面日志片段 可以在docker desktop查看更方便 下载依赖 解析package.json 文件 直到命令完全结束
2023-11-20 17:10:01 Retrieving lambdaisland/glogi/1.0.83/glogi-1.0.83.jar from https://repo.clojars.org/
2023-11-20 17:10:02 shadow-cljs - dependencies updated
2023-11-20 17:10:12 [:app] Compiling ...
2023-11-20 17:10:27 [:app] Build completed. (93 files, 28 compiled, 0 warnings, 15.29s)
$ yarn && webpack --bail
$ echo $npm_execpath | grep -q yarn || echo '\033[0;33mSorry, npm is not supported. Please use Yarn (https://yarnpkg.com/).\033[0m'
[1/5] Validating package.json...
[2/5] Resolving packages...
success Already up-to-date.
$ husky install
命令结束前的日志i
[16] /opt/metabase-master-v40/metabase-release-x.40.x/resources/frontend_client/app/fonts/lato-v16-latin/lato-v16-latin-900.woff 83 bytes {0} [built]
2023-11-20 17:12:06 + 4 hidden modules
Done in 696.75s.
九、lein 编译后端项目
lein -v 会初始化下载 lein的依赖包
(单纯编译后端 执行lein run ,lein uberjar 也可以不执行 )
十、进行构建命令(此过程也是相当滴漫长):
./bin/build
中间会有些依赖因为网络原因找不到 都跳过
1 What would you like to do?
2023-11-20 18:29:31 [T]ry this step again
2023-11-20 18:29:31 [F]ail -- pass the failure of this step to the parent step (which can be retried)
2023-11-20 18:29:31 [S]kip this step
2023-11-20 18:29:31 [R]EPL -- open a REPL so you can debug things
2023-11-21 09:09:21 [Q]uit the build script (or return to the top level if running from the REPL) [T/F/S/R/Q]
选择 S 回车
编译成功会显示以下日志
Created /opt/metabase-master-v40/metabase-release-x.40.x/target/uberjar+oss/metabase-core-1.0.0-SNAPSHOT.jar
2023-11-21 09:25:01 Created /opt/metabase-master-v40/metabase-release-x.40.x/target/uberjar/metabase.jar
2023-11-21 09:25:02 Uberjar built successfully.
2023-11-21 09:25:02 All build steps finished.
这个时候可以保存一下容器状态 不然退出容器又得重新安装之前的东西
提交容器 docker commit 754a6a43197dc0d1b9c24420d426c4142dd4ddd23b7b7f76cb33fbb233d89b23 my-linux-image-33:latest
十一、启动 jar包 进入 target/uberjar目录
1.使用自定义内存数据库
java -jar metabase.jar
2.使用mysql 数据库 需要安装mysql mysql是固定值 其他的改成实际的数据库名 用户名 密码 ip地址
MB_DB_TYPE=mysql MB_DB_DBNAME=your_database_name MB_DB_PORT=your_database_port MB_DB_USER=your_database_username MB_DB_PASS=your_database_password MB_DB_HOST=your_database_host java -jar metabase.jar
拓展:
本机安装docker 之后 host被改变 要从容器访问本地mysql8.0 需执行以下操作
修改mysql host为%
select * from mysql.user;
修改加密规则 不然远程访问不了本地mysql8.0
https://blog.youkuaiyun.com/lcy1619260/article/details/132302008