まだ途中だが、さくらのVPSで提供されている Windows Server 2016にて、下記を自動で行う Docker イメージを作ろうとしている。
- WebDAVディレクトリのマウント
- 共有フォルダ一括同期ツールによる、ファイル同期
- ボリューム共有による、コンテナとホストのファイル同期
Docker イメージからコンテナを作れば、スケジューラに docker run
を自動実行するようにさえ設定すれば、実行したタイミングで最新のものに同期してくれるのがメリットである。
また、冪等性も保たれているため、ID&パスワードをそれぞれの個人のものに変更すれば、誰でも簡単に実行環境を再現できるというメリットもある。
デメリットとしては、Windows Server か、 Windows 10 Pro 以上(Homeは不可)でないと動かない点がある。
下記はその Dockerfile
である。必要なVBScript等を ./files
ディレクトリに入れているが、その掲載はここでは省略し、後続の記事にて紹介する。
FROM mcr.microsoft.com/windows/servercore:1607 LABEL maintainer="dogwood008" ARG tmp_path="C:\windows\Temp" ARG work_dir="C:\work_dir" ARG files_dir="${work_dir}\files" ARG csv_data_dir="${work_dir}\kabu-plus-data" ARG init_script_name="init.ps1" ARG path_to_init_script="${files_dir}\\${init_script_name}" ARG sync_script_name="sync_CSVEX-WebDAV.bat" ARG path_to_sync_script="${files_dir}\\${sync_script_name}" ARG path_to_powershell="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" ENV PATH_TO_INIT_SCRIPT ${path_to_init_script} ENV PATH_TO_WORK_DIR ${work_dir} ENV PATH_TO_FILES_DIR ${files_dir} ENV PATH_TO_POWERSHELL ${path_to_powershell} ENV PATH_TO_SYNC_SCRIPT ${path_to_sync_script} ENV DROPBOX_TARGET_DIR ${csv_data_dir} COPY files ${files_dir} RUN %PATH_TO_POWERSHELL% -File %PATH_TO_INIT_SCRIPT% -PathToFilesDir %PATH_TO_FILES_DIR% CMD cmd /c "cscript %PATH_TO_SYNC_SCRIPT%"