Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[BUG] When the Docker Compose File gets into a bad state

オープン
#601 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
docker-compose, python

調査の方向性

まず ./ のようなデプロイメント マニフェストの bind パスを使って失敗を再現し、次に /root/.iotedgehubdev/data/data/docker-compose.yml と sudo iotedgedev simulator start のフローを調査します。完了条件は、マニフェストを変更してもシミュレーターの起動を妨げる無効な Compose ファイルが残らず、復旧のために生成されたファイルを手動で削除する必要がなくなることです。

索引モデルが issue の本文から書いたものです。

説明

bug InBacklog
Description

Have found a bug where its possible to get the docker compose file (/root/.iotedgehubdev/data/data/docker-compose.yml) into a bad state that you can't easily recover from with out taking the action of deleting the docker compose file

"createOptions": {
  "HostConfig": {
    "Binds": [
      "./certs:/https:ro"
    ],
    "PortBindings": {
      "443/tcp": [
        {
          "HostPort": "5001"
        }
      ]
    }
  }
}

sudo iotedgedev simulator start

ERROR: The Compose file '/root/.iotedgehubdev/data/data/docker-compose.yml' is invalid because:
volumes value './certs' does not match any of the regexes: '^[a-zA-Z0-9._-]+$'
ERROR: Error while executing command: docker-compose -f /root/.iotedgehubdev/data/data/docker-compose.yml down. Command '['docker-compose', '-f', '/root/.iotedgehubdev/data/data/docker-compose.yml', 'down']' returned non-zero exit status 1.
ERROR: Error while executing command: iotedgehubdev stop. Command '['iotedgehubdev', 'stop']' returned non-zero exit status 1.

cat /root/.iotedgehubdev/data/data/docker-compose.yml

volumes:
  ./certs:
    name: ./certs
  edgehubdev:
    name: edgehubdev
  edgemoduledev:
    name: edgemoduledev

Possible fixes might be just need to add some more validation to the manifest to protect docker compose file
or maybe just delete the docker compose file (/root/.iotedgehubdev/data/data/docker-compose.yml) if it becomes invalid

Expected behavior

Changes to the deployment manifest should mean the down stream docker compose file is regenerated
Other possible fixes might be just need to add some more validation to the manifest to protect docker compose file
Or even just delete the docker compose file (/root/.iotedgehubdev/data/data/docker-compose.yml) if it becomes invalid

Actual behavior

Changing the deployment manifest after the docker compose file has got into a bad state has no effect and you are stuck, unless you force delete the docker compose file in /root/.iotedgehubdev/data/data/docker-compose.yml

Steps to Reproduce

Change your deployment manifest into something thats going to mean an invalid docker compose file
such as a bind path of ./
run commands such as
sudo iotedgedev simulator start
get ERROR: Error while executing command: docker-compose

Environment

iotedgedev, version 3.3.7
Python 3.7.15
pip 22.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
WSL2 Ubuntu 22.04

主要言語
Python
スター
166
フォーク
76
平均マージ
2時間 35分
マージ済み PR(30日)
1

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Azure/iotedgedev のほかの issue

Azure/iotedgedev の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。