概要
Slackbotを定期実行したいため、Dockerでnodejsの環境を構築します。
前提条件
$ docker --version
Docker version 20.10.2, build 2291f61
ジョブフローを毎日18:00に実行する設定済み
job.js
constschedule=require('node-schedule');schedule.scheduleJob(`00 00 18 * * 1,2,3,4,5`,run);
Dockerイメージを作成する
1、プロジェクトフォルダー直下にDockerfile
を作成して、以下のコードを貼り付ける
FROM node:12.20.1WORKDIR /appCOPY . .RUN npm installENV TZ Asia/TokyoEXPOSE 8888CMD ["node" , "job.js" ]
2、.dockerignore
ファイルを設置してnode_modulesなどを転送対象から除外する
node_modules/
.gitignore
Dockerfile
package-lock.json
3、Dockerイメージのビルド
実行コマンド(magical-yuanxiao
はイメージ名)
$ docker build -t magical-yuanxiao .
ログ
Successfully built aebb1184bf44
Successfully tagged magical-yuanxiao:latest
コンテナを起動状態で作成する
実行コマンド(magical-yuanxiao
は先作ったイメージ)
$ docker run -p 8888:8888 magical-yuanxiao
最後に、docker ps -a
コマンドでコンテナの稼働状況を確認します。
自動的に実行される
参照サイト
https://www.npmjs.com/package/node-schedule
https://qiita.com/kooohei/items/0e788a2ce8c30f9dba53
https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/builder/