new_bee
2025年6月9日 16時30分
==========
製品型番:A6E
Debian/ABOSバージョン:3.21.3-at.7.20250528
カーネルバージョン:5.10.237-0-at
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
いつもお世話になっております。
現在コンテナ内のPythonファイルを定期実行したくcrond を導入しました。
コンテナ内でcron を起動すると問題なく定期実行されmain.pyが動作するのですが
コンテナインストール時にdocker file にて以下を書き込み実行したところコンテナが即終了してします状況に陥っています。
RUN echo "* * * * * /usr/bin/python3 /vol_app/src/py/main.py" > /etc/crontabs/root CMD ["crond", "-f"]
crontab の書き込みまでは問題なく実行できており
CMD ["crond", "-f"]実行時にこけてループしています。
またapp.confのほうでも以下のshを作成しシェルでのcrondの起動をためしてみましたがうまくいかない状況です。
while [ ! -f /vol_app/src/py/main.py ]; do sleep 1 done echo "* * * * * /usr/bin/python3 /vol_app/src/py/main.py" > /etc/crontabs/root crond -f -l info
初歩的質問で申し訳ありませんが御助力いただけると助かります。
コメント
new_bee
太田様
お世話になっております。
>とのことですが、ひとまず確認として、apt-get install cron で導入したということでよろしいでしょうか?
dcron をパッケージに書き込んでAlpineで実行しております。
コンテナを起動する際に使用している設定ファイル3点を添付いたします。
お手数ですが確認の程よろしくお願い致します。
ファイル | ファイルの説明 |
---|---|
app.conf.txt | |
Dockerfile.txt | |
packages.txt |
at_satoshi.ohta
太田です。
ATDE上で以下の方法を試していただけますでしょうか?
ここでは作成したプロジェクト名を my_project とします。
1. ABOSDE の左サイドバーから OPENED PROJECT > my_project > container > etc > crontabs > root を開き、「Save file」ボタンを押す。
2. my_project/container/resources/etc/contabs/root に以下を追記
* * * * * /usr/bin/python3 /vol_app/src/py/main.py
3. my_project/app/src/sh/main.sh の内容を以下のようにする
#!/bin/bash -e 必要であれば前処理 crond sleep infinity
5. my_project/config/app.conf に以下を追記
set_command bash /vol_app/src/sh/main.sh
4. [Generate development swu] または [Generate release swu]を実行
5. 作成した SWU イメージをインストール
上記の手順を試していただければ幸いです。
どうぞよろしくお願いいたします。
new_bee
太田様
お世話になっております。
早急の回答ありがとうございます。
ご教授いただいた手順を実行したところ問題なく起動させることが出来ました。
Alpineはデフォルトでdcronは使えるようですね
新たに私が入れ直したのが原因でしょうか?
基本的にはデフォルトの設定値に追加、修正すればよろしいでしょうか?
>
> ATDE上で以下の方法を試していただけますでしょうか?
> ここでは作成したプロジェクト名を my_project とします。
>
> 1. ABOSDE の左サイドバーから OPENED PROJECT > my_project > container > etc > crontabs > root を開き、「Save file」ボタンを押す。
> 2. my_project/container/resources/etc/contabs/root に以下を追記
>
> * * * * * /usr/bin/python3 /vol_app/src/py/main.py >
> 3. my_project/app/src/sh/main.sh の内容を以下のようにする
>
> #!/bin/bash -e > 必要であれば前処理 > > crond > sleep infinity >
> 5. my_project/config/app.conf に以下を追記
>
> set_command bash /vol_app/src/sh/main.sh >
> 4. [Generate development swu] または [Generate release swu]を実行
> 5. 作成した SWU イメージをインストール
>
> 上記の手順を試していただければ幸いです。
> どうぞよろしくお願いいたします。
at_satoshi.ohta
太田です。
> ご教授いただいた手順を実行したところ問題なく起動させることが出来ました。
> Alpineはデフォルトでdcronは使えるようですね
問題なく出来て何よりです。
そうみたいですね。
> 新たに私が入れ直したのが原因でしょうか?
頂いた app.conf を見る限りでは、app.conf に set_command を設定していなかったので何もせずにコンテナが終了しているようです。
ここでは、/vol_app/src/sh/main.sh を実行するように記述し、main.sh では crond を実行して、コンテナが終了しないように sleep infinity を実行しました。
> 基本的にはデフォルトの設定値に追加、修正すればよろしいでしょうか?
はい。それでいいと思います。
また、おせっかいですが、頂いた Dockerfile について
RG ARCH FROM docker.io/${ARCH}/alpine:latest LABEL version="2.0.0" ARG PRODUCT ★ COPY resources [r]esources_${PRODUCT} / ★ ARG PACKAGES ★ RUN apk update && apk upgrade \ ★ && apk add --no-cache ${PACKAGES} ★ # Add apt download source information COPY resources/etc/apt /etc/apt/ # Add extra packages to containers/packages.txt ARG PACKAGES RUN apk update && apk upgrade \ && apk add --no-cache ${PACKAGES} :(省略) ARG PRODUCT COPY resources [r]esources_${PRODUCT} / :(省略)
★の部分は以降で行っているので必要ないと思われます。
試してみていただければ幸いです。
どうぞよろしくお願いいたします。
new_bee
太田様
お世話になっております。
>頂いた app.conf を見る限りでは、app.conf に set_command を設定していなかったので何もせずにコンテナが終了しているようです。
>ここでは、/vol_app/src/sh/main.sh を実行するように記述し、main.sh では crond を実行して、コンテナが終了しないように sleep infinity を実行しまし
>た。
私の実行していたshではcrondを起動後に sleep infinity を記載していなかったためコンテナが数秒おきに再起動していたようです。
実行していたshに sleep infinity を追加したらコンテナが終了しなくなりました。
原因はこれだったようです。
ありがとうございます。
>★の部分は以降で行っているので必要ないと思われます。
>試してみていただければ幸いです。
削除して問題なく動作いたしました。
試していた際に散らかってしてしまいました。
いろいろご教授いただきありがとうございました。
at_satoshi.ohta
2025年6月9日 17時03分
太田です。
すみません。
手元で試したいのですが、
> 現在コンテナ内のPythonファイルを定期実行したくcrond を導入しました。
とのことですが、ひとまず確認として、apt-get install cron で導入したということでよろしいでしょうか?