LoginSignup
0
2

More than 3 years have passed since last update.

コンテナで定期処理させるときに上手くいった例のメモ書き【alpine linux + crond】

Last updated at Posted at 2019-07-31

コンテナでプログラムを定期処理させたい

  • 定期処理させるだけならcronを利用すればいいのですが、せっかくなのでコンテナで実行するプログラムの定期処理をしたいと思いました...

参考にしたリンク

以下のリンクを参考にさせてもらいました。

Dockerfileの書き方

  • Go言語を実行したかったので以下のように記述しました
FROM golang:1.12 AS build

RUN mkdir -p /home/wkspace/program
RUN go get github.com/PuerkitoBio/goquery
RUN go get github.com/parnurzeal/gorequest 
RUN go get github.com/sclevine/agouti 
COPY my-image-crawler.go /home/wkspace/program

WORKDIR /home/wkspace/program
RUN CGO_ENABLED=0 go build -o my-image-crawler my-image-crawler.go


FROM alpine:3.10

RUN apk add --update --no-cache tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
    echo "Asia/Tokyo" > /etc/timezone && \
    apk del tzdata

COPY --from=build /home/wkspace/program/my-image-crawler /usr/local/bin/
RUN chmod +x /usr/local/bin/my-image-crawler
RUN echo '45 22 * * * /usr/local/bin/my-image-crawler' > /var/spool/cron/crontabs/root
CMD ["crond", "-l", "2", "-f"]

docker-compose.yaml

  • はじめはcronが指定された時間に実行されずに悩みましたが、Dockerfileとdocker-compose.yamlの両方にタイムゾーンの指定をしてしまうと設定がおかしくなるみたいでした
  • 今回、dockerfileのほうにタイムゾーンの指定をしました
version: '3'
services:
  my-image-crawler:
    build: ./1.app/my-image-crawler
    container_name: 'my-image-crawler'
    tty: true
    volumes:
     - /home/users/wkspace/program:/home/wkspace/program:rw
    working_dir: /home/wkspace/program

networks:
    default:

感想

  • ひとまずやりたいことができたので満足です(>_<)
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2