こんにちは。dockerイメージの全消しを行ったRockinWoolです。
今日は最近のコロナワールドを鑑みて、定時ダッシュに挑戦したら無事に成功したので ようやくゆっくり色々やり始めようと思っている次第であります。

ということで、恒例?となった実況しながらのブログ投稿になります。
今日のテーマは「DockerでHugoの環境を作ってGithubpagesに投稿しよう!」って感じです。
それではぼちぼち進めて行きます。

まず最初に、今回のやりたいことを公開するためのrepositoryを自分のGithubに作成しました。ライセンスはよくわからないのでとりあえずGPLv2.0にしてあります。
こうして空のリポジトリを作成した後に、そのリポジトリをローカルにクローンしました。
\

git clone https://github.com/RockinWool/Docker_hugomaker

こんな感じのコマンドです。ここで、コマンド文をマークダウンで挿入する際にVSCodeに怒られてしまいました。どうやら前後に改行を入れないと怒ってくるそうです。
そして、昨日の投稿の裏でコッソリやっていたDockerfileを移動して起動・・のつもりが凄いゴミイメージとゴミコンテナがあったので掃除することに。
これで冒頭の全消しコマンドが発動することになったというわけです。

sudo docker images -aq | sudo xargs docker rmi -f
sudo docker rm $(sudo docker ps -q -a) -f

とりあえずこれでイメージもコンテナも全部消去することができました。
次にこのDockerfileを読み込んで起動して停止するのを自動化するプログラムも書いてみました。しかし、これが仇となりました。
とりあえず完成品は以下に記載しますが、いかんせんif文の書き方にいじめられすぎて時間がなくなってしまったのでTipsはまた次回書きます
ここまで読んでくださってありがとうございました!
参考URL

export PWD=$(pwd)
export EXISTDOCKER=$(sudo docker ps -a -f "name=HugoC" --format {{.Names}})
for X in "RockinWool"
do
    sudo docker build -t hugoc .
    if [ "$EXISTDOCKER" = HugoC ]; then
        read -p " すでにコンテナは存在しますが作り直しますか? (y/N):" BUILD
        case "$BUILD" in 
            [yY]*) sudo docker rm HugoC && sudo docker run -itd --name HugoC -v $PWD/volume/:/volume hugoc && sudo docker exec -it HugoC bash;;
            *) echo "skipped." ;;
        esac
    else
        sudo docker run -itd --name HugoC -v $PWD/volume/:/volume hugoc
    fi
    sudo docker start HugoC
    sudo docker exec -it HugoC bash
    sudo docker stop HugoC
    read -p "${X} : コンテナを破棄しますか? (y/N):" VAR
    case "$VAR" in 
        [yY]*) sudo docker rm HugoC ;;
        *) echo "skipped." ; continue ;;
    esac
done

Leave a Reply

Your email address will not be published. Required fields are marked *