为啥我用md写的目录点不动。。。
使用docker搞起redmine。
首先拉下来:docker pull redmine
然后使用redmine内置的数据库,执行:docker run -dti --name red -p 23000:3000 redmine
运行后,在web中输入:ip:23000,初始密码:admin admin ;在web中修改密码:admin dockerred
使用自己的mysql:两个挂载目录可有可无,没有暂时不影响。但是正式使用必须有,因为你得备份数据啊。还有,如果插件安装失败,启动也会失败,可以暂时删除导致安装失败的目录。
docker run -dti --name red -p 23000:3000 \
-v /home/lw/redmine/plugins:/usr/src/redmine/plugins \
-v /home/lw/redmine/data/files:/usr/src/redmine/files \
--env='REDMINE_DB_MYSQL=172.16.21.65' \
--env='REDMINE_DB_PORT=10086' \
--env='REDMINE_DB_USERNAME=root' \
--env='REDMINE_DB_PASSWORD=root' \
--env='REDMINE_DB_DATABASE=redmine' \
--env='REDMINE_DB_ENCODING=utf8' \
redmine
docker run -dti --name red -p 23000:3000 \
-v /sda3root/dockerData/redmine/plugins:/usr/src/redmine/plugins \
-v /sda3root/dockerData/redmine/data/files:/usr/src/redmine/files \
--env='REDMINE_DB_MYSQL=172.16.21.65' \
--env='REDMINE_DB_PORT=10086' \
--env='REDMINE_DB_USERNAME=root' \
--env='REDMINE_DB_PASSWORD=root' \
--env='REDMINE_DB_DATABASE=redmine' \
--env='REDMINE_DB_ENCODING=utf8' \
redmine
docker logs -f red
http://192.168.123.3:23000/
版本:Redmine 4.1.1.stable
妈耶,我真是个傻子,用apt update就行,为啥非得用apt-get update,坑爹教程误人啊。问题解决,不用往下看了。
如果你的源很慢,那就考虑换源了。
进入容器,先看一些基础配置。
因为系统太精简,所以有些依赖没有,导致插件文档管家安装失败。然后更新apt-get update,发现无法更新。说要更换源。注意,更换源必须找系统对应的源,比如debian
首先备份源文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
然后将源文件里面的网址替换为阿里源或者清华源。因为没有vi和vim,也无法安装,只能使用echo。
cd /etc/apt
echo "">sources.list
echo "deb http://mirrors.aliyun.com/debian buster main">>sources.list
echo "deb http://mirrors.aliyun.com/debian-security buster/updates main">>sources.list
echo "deb http://mirrors.aliyun.com/debian buster-updates main">>sources.list
apt-get update ,还是失败
这是网友的分析:https://blog.csdn.net/shangyexin/article/details/102657776
报错后,尝试了更换软件源,都不可以,后更换网络,改用手机连接,发现可以更新;初步分析,应该是公司的深信服上网管理软件进行了限制,类似运营商的缓存劫持。
解决方案:更换https软件软件源
将上面的替换为https清华源:
cd /etc/apt
echo "">sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian buster main">>sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main">>sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main">>sources.list
apt-get clean; # 清空缓存
apt-get update; # 更新
apt-get -y install vim; # -y自动确认,更方便
终于搞定!
这是第一次:redmine的文件管家插件是真的难搞啊。搞了半天,没弄出来,遂放弃。
第二次搞定。
插件介绍教程:https://www.redmineplugins.cn/projects/1/plugin_blocks/23?tab=installation_notes
具体安装地址:https://github.com/danmunn/redmine_dmsf
docker exec -it lw-red /bin/bash
容器外-宿主机,插件挂载目录,下载dmsf源码:wget https://github.com/danmunn/redmine_dmsf/archive/master.zip
解压后重命名:unzip master.zip ,mv redmine_dmsf-master redmine_dmsf ,mv master.zip redmine_dmsf-master.zip
转到redmine目录 cd redmine ,容器进入的目录是 cd /usr/src/redmine
安装 gem 依赖项:bundle install --without development test
报错:
Installing ox 2.14.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /usr/local/bundle/gems/ox-2.14.1/ext/ox
/usr/local/bin/ruby -I /usr/local/lib/ruby/2.6.0 -r ./siteconf20210303-33-kyt5mo.rb extconf.rb
>>>>> Creating Makefile for ruby version 2.6.6 on x86_64-linux <<<<<
checking for rb_time_timespec()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
...省略
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/usr/local/bundle/extensions/x86_64-linux/2.6.0/ox-2.14.1/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /usr/local/bundle/gems/ox-2.14.1 for inspection.
Results logged to /usr/local/bundle/extensions/x86_64-linux/2.6.0/ox-2.14.1/gem_make.out
An error occurred while installing ox (2.14.1), and Bundler cannot continue.
Make sure that `gem install ox -v '2.14.1' --source 'https://rubygems.org/'` succeeds before bundling.
In Gemfile:
ox
按照提示安装:gem install ox -v ‘2.14.1’ --source ‘https://rubygems.org/’ ,继续报错。
原因分析:其实这是因为 Redmine 的 docker 镜像 缺少 ffi 安装必要的编译环境,从而导致失败,需要我们手动安装下。
步骤如下:
千万不要apt-get update ,这样会导致失败。为此我特么还更换源,搞半天。
用更新apt-get:apt-get clean; # 清空缓存。 apt-get update; # 更新然后继续安装:
自定义镜像:
创建Dockerfile,中间还得加上更换apt的源。
From redmine:latest
RUN apt update \
&& apt-get -y --force-yes install gcc ruby-dev make \
&& gem install ox -v '2.14.1' --source 'https://rubygems.org/'
构建镜像:docker build -t redmine-gogo .
下面这些在github里的安装教程没有用到:
初始化/更新数据库:
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_dmsf
必须为Web服务器设置访问权限,例如:chown -R www-data:www-data plugins/redmine_dmsf。
重新启动Web服务器,例如 systemctl restart apache2
您应该通过Redmine界面配置插件:管理->插件-> DMSF->配置。
不要忘记在管理->角色和权限中为DMSF授予权限
将DMSF权限分配给适当的角色。
我用sudo,发现sudo不存在,那我不用就完了啊。
卸载:
需要对redmine进行备份,镜像,数据库,以及挂载的目录(使用docker inspect red 查看)。
redmine和别的mysql之类的不同,mysql只修改配置文件,redmine的插件安装有依赖,比如系统级的依赖,这些就没放到挂载目录里面,所以备份得备份容器,而不是只有镜像。
警告:没对挂载目录备份,导致图片没有导出来。图片在挂载目录:data/files 里面,所以挂载目录必须有
然后重新恢复:卧槽,看日志说插件安装不上。一脸懵逼。
会不会是我之前搞的错误的插件,导致无法启动?
删除挂载目录后重新启动
,或者删除plugins插件目录里面出错的dmsf目录
,都ok。数据都在,就是没有插件。