<div style="font-size:16px;">
<p>Doccano标注系统安装与二次开发(机器学习从业开发者标注工具,支持多语言)</p>
<p>文章目录</p>
<p>Doccano标注系统安装与二次开发(机器学习从业开发者标注工具,支持多语言)</p>
<p>Doccano标注系统安装</p>
<p>1.1 linux上单独部署</p>
<p>1.1 linux上,前后端分离部署</p>
<p>windows上二次开发环境部署</p>
<p>基于doccano项目的二次开发,为不同用户平均分配标注任务</p>
<p>Doccano是面向机器学习专业人员的开源文本标注工具。</p>
<p align="center"> <img alt="" src=""></p>
<p>Doccano标注系统安装</p>
<p>项目git地址: https://github.com/doccano/doccano</p>
<p>在doccano项目中,已经简单介绍过安装方法。项目实际文件时在app中。</p>
<p align="center"> git目录结构如下: <img alt="" src=""></p>
<p>1.1 linux上单独部署</p>
<p>git clone https://github.com/doccano/doccano.git</p>
<p>cd doccano/</p>
<p align="center"><img alt="" src=""></p>
<p>修改docker-compose.prod.yml文件中的用户名和密码</p>
<p>ADMIN_USERNAME: "admin"</p>
<p>ADMIN_PASSWORD: "password"</p>
<p>运行项目</p>
<p>docker-compose -f docker-compose.dev.yml up</p>
<p>在doccano项目中,已经介绍了上面方法部署。这里不再做过多介绍。</p>
<p>1.1 linux上,前后端分离部署</p>
<p>经过分析,doccano后端代码在app目录中,前端代码在app/server/static目录中。</p>
<p align="center"> 后端目录 <img alt="" src=""></p>
<p>前端目录</p>
<p align="center"> <img alt="" src=""></p>
<p>修改前端启动ip及其他</p>
<p>本次使用域名"www.mumuxi.online"</p>
<p>vim webpack.config.js修改后的文件如下 const fs = require('fs');</p>
<p>const path = require('path');</p>
<p>const process = require('process');</p>
<p>const BundleTracker = require('webpack-bundle-tracker');</p>
<p>const VueLoaderPlugin = require('vue-loader/lib/plugin')</p>
<p>const { ContextReplacementPlugin } = require('webpack');</p>
<p>const hljsLanguages = require('./components/hljsLanguages');</p>
<p>const devMode = process.env.DEBUG !== 'False';</p>
<p>const hotReload = process.env.HOT_RELOAD === '1';</p>
<p>const webpackHost = process.env.WEBPACK_HOST || '0.0.0.0';</p>
<p>const webpackPort = process.env.WEBPACK_PORT ? parseInt(process.env.WEBPACK_PORT, 10) : 8080;</p>
<p>const pollMillis = process.env.WEBPACK_POLL_MILLIS ? parseInt(process.env.WEBPACK_POLL_MILLIS, 10) : false;</p>
<p>const noSourceMap = process.env.SOURCE_MAP === 'False';</p>
<p>const pagesRoot = path.join(__dirname, 'pages');</p>
<p>const entryPoints = {};</p>
<p>fs.readdirSync(pagesRoot).forEach((scriptName) => {<!-- --></p>
<p>const bundleName = path.parse(scriptName).name;</p>
<p>const scriptPath = path.join(pagesRoot, scriptName)</p>
<p>entryPoints[bundleName] = scriptPath;</p>
<p>});</p>
<p>module.exports = {<!-- --></p>
<p>mode: devMode ? 'development' : 'production',</p>
<p>entry: entryPoints,</p>
<p>output: {<!-- --></p>
<p>publicPath: hotReload ? `http://www.mumuxi.online:${webpackPort}/` : '',</p>
<p>path: path.join(__dirname, 'bundle'),</p>
<p>filename: '[name].js'</p>
<p>},</p>
<p>devtool: noSourceMap ? false : (devMode ? 'cheap-eval-source-map' : 'source-map'),</p>
<p>devServer: {<!-- --></p>
<p>port: webpackPort,</p>
<p>host: webpackHost,</p>
<p>disableHostCheck: true,</p>
<p>hot: true,</p>
<p>quiet: false,</p>
<p>headers: { 'Access-Control-Allow-Origin': '*' }</p>
<p>},</p>
<p>watchOptions: {<!-- --></p>
<p>poll: pollMillis,</p>
<p>},</p>
<p>module: {<!-- --></p>
<p>rules: [</p>
<p>{<!-- --></p>
<p>test: /\.pug$/,</p>
<p>loader: 'pug-plain-loader'</p>
<p>},</p>
<p>{<!-- --></p>
<p>test: /\.css$/,</p>
<p>use: [</p>
<p>'vue-style-loader',</p>
<p>'css-loader'</p>
<p>]</p>
<p>},</p>
<p>{<!-- --></p>
<p>test: /\.vue$/,</p>
<p>loader: 'vue-loader'</p>
<p>}</p>
<p>]</p>
<p>},</p>
<p>plugins: [</p>
<p>new ContextReplacementPlugin(</p>
<p>/highlight\.js\/lib\/languages$/,</p>
<p>new RegExp(`^./(${hljsLanguages.join('|')})$`)</p>
<p>),</p>
<p>new BundleTracker({ filename: './webpack-stats.json' }),</p>
<p>new VueLoaderPlugin()</p>
<p>],</p>
<p>resolve: {<!-- --></p>
<p>extensions: ['.js', '.vue'],</p>
<p>alias: {<!-- --></p>
<p>vue$: 'vue/dist/vue.esm.js',</p>
<p>},</p>
<p>},</p>
<p>}</p>
<p align="center"><img alt="" src=""></p>
<p>为前端创建Dockerfile文件,内容如下 FROM node</p>
<p>WORKDIR /usr/src/app</p>
<p># 设置时区</p>
<p>RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</p>
<p>RUN echo 'Asia/Shanghai' >/etc/timezone</p>
<p>CMD [ "bash"]</p>
<p>创建并运行前端容器 # 构建镜像文件</p>
<p>docker build -t doccanoweb .</p>
<p># 初始化npm</p>
<p>docker run -i --rm --name doccanoweb --network host -v "$PWD"/:/usr/src/app/ -e PYTHONUNBUFFERED= |
|