最終更新: a few seconds agoRemove Netlify-related code from main (grafted, HEAD)

CIRCUS CS Docker 化に関する疑問点・構成ノート

参考

キュー管理システム(PQMS)

  • wait キュー
  • processing キュー
  • finished キュー

からなるのがキューでやろうと思った場合...だけども。

Wrap wrapped docker

// wrapper for dockcode
class PMDockerContainer extends EventEmitter {
	constructor( {jobId, mnt, timeout} )
	{
	}
}

const container = new PMDockerContainer(1,'/hoge/piyo/foo/');
container.on('start', () => ...)
container.on('timeout', () => ...)
container.on('finish', () => ...)

Docker サンプル


cd /home/kano/work/circus/docker_test/build docker build -t test .


VOLUME_ROOT=/home/kano/work/circus/docker_test/volumes rm -rf ${VOLUME_ROOT}/* JOB_ID=$(date | md5sum | cut -d\ -f1) mkdir -p ${VOLUME_ROOT}/${JOB_ID}/{in,out}

Parse DICOM dummy

touch ${VOLUME_ROOT}/${JOB_ID}/in/{000.raw,000.mhd,000.txt} touch ${VOLUME_ROOT}/${JOB_ID}/in/{000.raw,001.mhd,001.txt} touch ${VOLUME_ROOT}/${JOB_ID}/in/{000.raw,002.mhd,002.txt}

find ${VOLUME_ROOT}

Docker run

docker run
-v ${VOLUME_ROOT}/${JOB_ID}/in:/circus/src
-v ${VOLUME_ROOT}/${JOB_ID}/out:/circus/dest
test

別々に接続する理由について

find ${VOLUME_ROOT}/${JOB_ID}/out -type f | xargs cat

!!!! 引数を設定??? !!!!

src > in dest > out


めも


export function enQueue(pluginJobRequest): Promise<jobId: string>
{
	const jobQueue = ...
	wait.push(jobQueue);

	// フロント側DB > (F)in_queue へ更新しない (UIがやる)
}

export function deQueue(maxPararellExectionNumber: number): Promise<???>
{
	const queueItem = wait.shift();
	processing.push(queueItem);

	// フロント側DB > (F) processing へ更新(こちらでやる)

	// /in にボリュームを作成
	// DICOMデータをパースして /in/???.raw, /in/???.mhd, /in/???.txt へ書き込み
		// DICOM(個人情報を含む) は置かない
	// 001.raw (* には何がどう入るべきか)
	// *.mhd (* には何がどう入るべきか)
	// *.txt (* には何がどう入るべきか)

	/**
	 * Docker 起動処理
	 */

	const proccess = KickSomeDocker
		.then( () => {} )
		.catch(e=>{});

	proccess
}