2023.12.15
按照官方的文档安装production,安装了Ubuntu 20.04.6 LTS服务器版。安装过程比较顺利,除了git clone试了多次才成功。
命令
sudo npm install -g npm@latest
没有执行成功,提示nodejs的版本低了,执行下面的命令
$ curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
$ sudo apt-get install nodejs
$ sudo npm install -g npm@latest
成功。
下面的命令执行时报错:
sysadmin@appserver:/var/canvas$ sudo gem install bundler --version 2.4.19
sysadmin@appserver:/var/canvas$ bundle config set --local path vendor/bundle
sysadmin@appserver:/var/canvas$ bundle install
提示版本2.4.20,把上面的命令中的版本修改为.2.4.20再重复执行,执行过程较慢,要耐性等待。
实际上执行bundle install时 虽然提示版本2.4.20,但是会自动安装bundler 2.4.20。执行命令bundle install报错,查了一下ruby的版本,是3.1.2p20。安装文档推荐Ruby3.1,并指出Ruby3.1+支持未测试。
按照安装文档,需要进行如下设置:
LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
不知道PassengerRoot和PassengerRuby的正确值,可用用下面的命令获得:
passenger-config --root
passenger-config --ruby-command
安装进行中......
2024/02/11
能顺利访问github了,Canvas-LMS终于安装成功。
设置缓冲服务器redis,但是报信息 redis Connection refused。
2024/02/17
需要启动redis
sudo /etc/init.d/redis-server start
查看redis是否启动
sudo /etc/init.d/redis-server status
2024/02/18
将VMware Workstation的虚拟机转换为Docker镜像需要以下步骤:
安装Docker和VMware Workstation软件。
在VMware Workstation中,使用“导出”功能将虚拟机导出为OVF格式。
在命令行中运行以下命令将OVF转换为Docker镜像:
$ docker import my-vmware-image.ova my-docker-image:tag
其中,my-vmware-image.ova是你导出的OVF文件名,my-docker-image是你要创建的Docker镜像的名称,tag是你要为该镜像设置的标签。 4. 运行以下命令创建一个Docker容器并启动它:
$ docker run -it my-docker-image:tag /bin/bash
这将创建一个基于你的VMware Workstation虚拟机的Docker容器,并在其中启动一个交互式bash会话。
OVF文件是什么?
OVF是Open Virtualization Format的缩写,是一种开放的虚拟机格式,它使用XML文件描述虚拟机的配置信息、操作系统和应用程序等内容,以便在不同的虚拟化平台之间进行移植和交换。OVF文件通常包括一个或多个虚拟磁盘文件(VMDK、VHD等)和一个描述虚拟机配置的XML文件。
2024/02/19
VMware Workstation可以导出ovf和ova格式的文件,上面的操作应该是先导出ova格式的文件,然后从ova格式的文件转换为docker镜像,但是容器不能启动。
使用windows 11 wsl docker,拉取dmtr/canvas-lms-prod,然后用下面的命令启动容器:
sudo docker run -d -p 22:22 -p 3000:3000 -p 5432:5432 -p 6379:6379 dmtr/canvas-lms-prod
在windows 11主机浏览器地址输入:
显示canvas-lms登录页面。
Windows(172.30.32.1)
wsl(172.30.45.12,172.17.0.1)
docker容器(172.17.0.2)
不知道canvas-lms的登录账号和密码,因为不能访问hub.docker.com,看不到关于dmtr/canvas-lms-prod的说明。
2024/02/26
用docker建立canvas-lms开发环境非常简单,只需要安装docker和运行脚本文件:
script/docker_dev_setup.sh
在windows 11家庭版+wsl环境用docker建立canvas-lms开发环境时的问题主要有网络速度问题,npm源问题和drop 数据库问题。在script/common/utils/common.sh中增加npm换源命令:
npm config set registry https://registry.npmmirror.com
运行脚本文件时报文件夹权限问题,修改文件夹权限。运行过程可能由于网络速度中断,重新执行脚本文件。最终建立开发环境成功。
但是不知道默认的用户账号和密码,不能登录。
电脑重启动后,用docker-compose up -d启动容器,好像不能显示登录页面。
停止所有容器的命令如下:
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
重启动所有容器的命令如下:
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
重启动所有容器,可显示登录页面。
tag为none的镜像文件可能是执行脚本产生的中间过渡镜像文件。
删除所有tag为none的镜像文件用如下的命令:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
删除所有的镜像文件用如下的命令:
docker rmi $(docker images -q)
清理镜像
我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker image prune
清理后剩下的镜像文件如下图:
Navicat Premium 16可以连接postgresql,但是容器内的postgresql只允许本地访问,不方便修改配置文件。
需要修改两个配置文件:pg_hba.conf 和 postgresql.conf。
pg_hba.conf 配置PostgreSQL数据库的访问权限。
找到“# IPv4 local connections:“后,回车另起一行,添加参数行如下,保存。host all all 0.0.0.0/0 trust
其中0.0.0.0/0表示运行任意ip地址访问
postgresql.conf 配置PostgreSQL数据库服务器的相应的参数。
找到“listen_addresses“参数后,设置listen_addresses = ‘*’,保存。
2024/02/27
wsl canvas-lms开发环境进入postgresql容器和操作数据库
docker exec -it 容器ID /bin/sh #进入容器
su postgres #切换用户
psql #进入sql命令行
\l #列出数据库
\c dbname #选择数据库
\d tablename #显示数据表结构
在Linux命令行输入数据库导出、导入命令:
pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)>/data/dum.sql
#特别注意:数据库名与'>' 之间不能存在空格
#例如,导出整个数据库
$pg_dump -h localhost -U postgres canvas_production>canvas_production.sql
#例如,导入sql文件
psql -U postgres canvas_production <canvas_production.sql