IT エンジニア日記 ~Docker で環境を作るとリポジトリが無い~ -2024/07/13-
どうも。不具合だらけの身体と精神を持つ clown です。
特に心が弱いもんだから、世間の荒波にもまれて生きるのが本当に辛い。
空気を読めない人とかイケイケGoGo!な人とか見ると本当に羨ましいし、度胸があったり肝が据わってる人って本当に羨ましいと思いながら、毎日部屋の隅でガタガタ震えながら命乞いをしている生活をしている。
そんな僕。
Docker で環境構築をしている。
目指している環境は、LAMP(下記参照)
CentOS 7
Apache 2.4
PHP 8.1
MySQL 5.7
phpMyAdmin
Postfix
という感じで、あるサーバのクローンを作って開発環境にしたい。
今まで XAMPP で作ってたものを Docker に置き換える。っていうのは随分前にやってみてたんだけど、うまく動かないっていう素敵な状況だったり、そもそも Docker がよくわかってなかったりしたんでちょっと諦めてたというか、明日やろうっていうのを永遠に繰り返してたから、この連休でお勉強しつつ環境もこさえてしまおうと言う算段。
最低限の OS イメージを取得してってところからコケるという面白い展開。
なるほどなるほど。こうすればいいのね。っていうのを公式のマニュアルを確認しながら一手ずつ進めていく。
一気に設定を書いちゃってとりあえず実行する。っていうやり方でもいいんだけど、それをやるとエラーが出たときにどこが間違っているのかわかりづらいし、一歩ずつ確認して勉強しながら進めたいわけで、トライ&エラーでやってみた。
OS イメージを DL して環境を展開する前に、パッケージ群をアップデートしたい。
$ yum -y update
という基礎的な部分でコケるって言うね。
調べてみるとリポジトリが無くなってるっぽいので、DL して展開した OS イメージ内のリポジトリ情報をオーバーライドしてなんとかする。
イメージを引っ張ってすぐに、RUN コマンドで CentOS-Base.repo をバックアップして、こんな内容でオーバーライドした。
[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
これでパッケージのアップデートが可能になったし、以降のパッケージ取得もすんなり進んだ。
あとは要件にあわせたイメージを引っ張って展開するように docker-composer.yml を書くのと、各々のコンテナの Dockerfile を書くだけなんで、ググれば出てくるレベルのことを書いて
$ docker-compose build
でビルドして、問題なさそうなので、
$ docker-compose up -d
でコンテナ群を起動すればOK。
以降はわりとすんなりと進むけどトライ&エラーなんで、もちろん都度動かしながら直しながら。ここでは各ミドルウェアの設定でちょっとハマったけれど、Docker とは関係ない部分なので、別の記事にするかもしれません。
とりあえず Web サーバとして最低限な感じには作れた。Docker も概ね理解した。もう完璧。
あとは、初期状態の DB テーブル群を自動作成してもらったり、メールサーバとしての機能を持たせたりするところ。
明日がんばる。
IT ならなんでもやる人なんで、お仕事がいただければなんでも頑張ります。お仕事ください。記事の購入や欲しい物リストで応援してください。
掲げている使命
好きとスキルを駆使して、心身と経済が豊かな日本社会を創造する
いま、目の前で困っていることがある方のために僕の「好き」と「スキル」がお役にたつかもしれません。
こちら(↓)の自己紹介で僕の得意を書いていますので、お困り事のある方は、コメントをいただけるとありがたいです。
支援のお願い
本記事は無料でお読みいただけますが、投げ銭形式にしているので、気に入ったらご購入いただけると嬉しいです。
また、下記リンクのご支援をいただけると励みになります。
素材引用元
アイコン
見出し
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?