dockerメモリ不足 と apache2タイムアウトの対応方法

事象

500のエラー画面で原因がよくつかめない事象となりました

Laravelログは下記が発生

[2021-05-03 00:53:15] local.ERROR: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) {"userId":1,"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 1): Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) at /var/www/html/vendor/dompdf/dompdf/src/Css/Style.php:879)
[stacktrace]
#0 {main}
"} 

原因

  • 1つ目の原因は、Laravelログにでておりましたメモリ不足です。
  • 2つ目の原因はapache でのタイムアウトなのでこちらが 500エラーで原因がつかめなくて時間を消費しました

対策

(1) phpinfo.php を作成し、”<?phpphpinfo();?>” をコーディングしました。こちらを表示して調査しました


(2)メモリ不足は、PHP.ini ファイルです。Docker作成済みなので直接vim で追加しました。vimインストールは
apt-get install vim
vim /usr/local/etc/php/php.ini
を行いました。下記変更です


(3)apacheの設定は
vim /etc/apache2/apache2.conf

docker再起動で変更されますのでお確かめください

その他補足

viの使い方は、下記おすすめです

https://blog.codecamp.jp/vim-command

Docker環境なれると、上記はLinux環境設定です

楽ですね。少し前では大変な開発環境ですが、あっさりできるので最近の若い人たちは恵まれてるなーと感じます。

0

dockerのbuild できなくなった。作成者未記載はできなくなったぞー!

いままでbuild できたのにエラ-になりました

docker Hub の過去の作成者が未記入なものがbuildできなくなっております
その際は設定を変更してください

{
"registry-mirrors": [],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": false
}
}
0

おすすめmixhostレンタルサーバの登録からサイト公開まで。超簡単!!

仕事や趣味に関する情報発信をしたいと考えた時、最も手軽なのはブログやTwitterInstagramFacebookなどのSNSでしょう。動画や音声ならYouTubeですね。しかし、始めようと思ったらレンタルサーバーを利用する必要があります。

そこでレンタルサーバーを使って全世界へ情報発信を行うのです。その名の通りサーバーを借りることのできるサービスです。

では、mixhostで始めてみましょう

下記をクリックしましょう

プランを選択する

SSD350GB で8GBメモリであれば大量データを取り扱わない限りは問題ありません

個人やスモールビジネスであれば「おすすめ」どおりで問題はないです。

契約内容記入

  • 氏名
  • メールアドレス
  • 住所
  • 個人/法人
  • 会社名(個人利用の場合は不要)
  • パスワード

きちんと利用規約を読んで申し込みをしてください。

この時、登録をしている時点で、使い方や動作速度に疑問を感じたら1ケ月無料なので検討し直しも可能です。その後、契約内容の確認メールが送られてきます。

場合によっては、仮登録という形になります。その場合は、メールに記載されている本登録用のURLにアクセスすることで契約完了です。

コントロールパネルで入ってみましょう

メールにはコントロールパネル(いろいろな設定できる)のURLがのっております

クリックしてみてください

ご自分のIDとパスワードでお入りください

コントロールパネル操作

すごいですね。メールサーバやWordpress等多彩です

ターミナルで操作ですが、wordpress や Laravel など選択ですぐに動作します

かんたんですよ

アプリはこんなに揃ってます
私はLaravelで重宝しているのです

※詳細な使い方は時間が取れ次第また整理していきますので、是非mixhost使ってみてくださいね

補足)ドメイン名の移行手順

https://help.mixhost.jp/hc/ja/articles/115003743271-%E4%BB%96%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8B%E3%82%89%E3%81%AE%E7%A7%BB%E8%BB%A2%E6%96%B9%E6%B3%95

0

docker でvim 使いたいですよね

vimとは

ファイルの作成や編集時に用いる、linuxの標準的なコマンド。
linuxで、cuiでのファイル編集時には、まず「vim」を利用することが多いのでの操作は覚える必要があります。
GUIに慣れた人には「iキー」が挿入であったり、編集後の書き込みが「:wq」となっていたり、初めはよくわからないと思いますが慣れれば、苦ではありません。

containerにログイン

・docker container exec -ti コンテナ名 bash

Vimのインストール

OSによってインストール方法が変わる。

・Redhat系

yum install vim

・Debian/Ubuntu系

apt-get update
apt-get install vim
0

在宅の運動不足にはシックスパッド フットフィットがいいですよ。

仕事の合間に、椅子を倒してアロマを炊いて目薬をさしてセラピータイムでリラックスを作ってます。すごく足に効いて良いですよ。

我が家は、嫁と2台です。

嫁は立ち仕事なので、風呂上がりには最高のようです。

これは絶対のおすすめです。

0

PHPのメモリ上限をアップする方法

エラーメッセージ

Fatal error: Allowed memory size of xxxxxx bytes exhausted

が発生することがある場合の対象方法を説明いたします

初期ではPHPのメモリ上限が少なく設定されています。その際に上記メッセージに遭遇することがあります。
 この場合はPHPのメモリ使用量の上限を変更するのですが、そのときに設定するパラメータがmemory_limitです。

現在使用可能なメモリ使用量の確認

現在PHPに割り当てられているメモリ使用量を確認します。

$ php -i | grep memory_limit

memory_limit => 128M => 128M

memory_limitはphp.iniに設定されています。そのため、読み込まれているphp.iniがどこにあるかパスを確認しましょう。

$ php -i | grep php.ini

Configuration File (php.ini) Path => /path/to/php/etc
Loaded Configuration File => /path/to/php/etc/php.ini

メモリ使用量を任意の値に変更

php.iniのmemory_limitを編集して、割り当てたいメモリ量を設定します。
512MBのメモリを割り当てた場合の設定を次に示します。

memory_limit = 512M

メモリ使用量を無制限に変更する

メモリの使用量を無制限にしたい場合は、memory_limitに”-1″を設定します。。

memory_limit = -1
0

Dockerで不要なコンテナ・イメージの見つけ方

イメージ

$ docker images --filter "dangling=true"

不要なイメージを削除

$ docker image prune

ちなみに、v1.2.5 以前では以下のコマンドで削除していました。

$ docker rmi $(docker images -f "dangling=true" -q)

コンテナ

不要なコンテナ一覧

$ docker ps -f "status=exited"

停止コンテナ一括削除

$ docker container prune

0

docker 削除(docker-compose.ymlのvolumesセクションに書かれた名前付きボリュームとコンテナにアタッチされたanonymous volumeが削除)

docker-compose down --rmi all --volumes --remove-orphans

downコマンドの特性としては、upコマンドと真逆のことをするコマンドということになる。つまり、upコマンドで作られうるもの(イメージ、コンテナ、ボリューム、ネットワーク)をすべて削除する。やり直しに有効なコマンドなのです

--rmiオプションは、削除するイメージの種類を指定する。allはすべてのイメージ。localはフィールドにカスタムタグのないイメージのみを削除する。--rmiオプションを省略すると、イメージは消されない。

--volumesオプションは、docker-compose.ymlvolumesセクションに書かれた名前付きボリュームとコンテナにアタッチされたanonymous volumeが削除される。

--remove-orphansオプションは、docker-compose.ymlで定義から削除されたサービス用の未定義コンテナも削除される。

0

!完全無料!プログラミング学習・転職・就職支援があります

最近では、受講料70万で就職率99%で話題になったオンラインスクールありましたね。私は15万ほどの実績あるプログラミングスクールを勧めております。

しかし、未経験でも転職率95%。無料でエンジニア育成してくれるスクールなのか転職サポートなのか?すごいビジネススタイルを見つけましたのでご案内です。

気になる方は、是非下記画像クリックして見てみてください

無料説明会を聞いてみましたが、なかなか良さそうです。

就職しないとこのGEEKJOBさんはお金にならないので必死なようです。

■GEEK JOB概要


GEEK JOBは、「学びかた」を改革し、自ら学び自らサービスを創り出す人を増やすをミッションにプログラミング学習や転職・就職支援、エンジニアの育成を行っているそうです。

■プログラムの内容


当プログラムは、GEEK JOBの内、異業種からITエンジニアとして就職を目指す転職者のための就職支援サービスです。
学べる技術は、インフラ技術であり、コースの期間は、1ヶ月~3ヶ月です。
2019年2月に最先端スタートアップのサービス開発をしてきた株式会社Sun Asteriskと資本業務提携しました。
実際にシステム開発をしているからこそのキャリアプランの提案を行っています。

■なぜ高い転職率を実現できるのか


GEEK JOBが高い転職率を実現してる理由は「徹底した採用者目線」での就職支援とプログラミング学習支援を実施されているそうです。
就職支援においては、面接のロールプレイングから実際の仕事を体験するアクティビティを取り入れており、選考突破方法だけでなく、就業後にも役に立つ働き方を身に着けてもらっています。
各々の学習においては、講義形式ではなく「反転学習」を取り入れ、自らすすんで学習するスタイルを取り入れています。

■このサービスのメリットは


(1)最低限の学習で早く就職したい人をターゲットにしているのがスピード転職コース
(2)IT業界の多数派であるtoBのシステム開発を行っている企業を中心に、受けられる限りの選考を受けて早期内定獲得を目指すコース。
(3)コンセプトは、費用をかけないで早く就職したい、早く収入がほしい人のための「スピード転職コース」です。

※どうもオンラインスクールというよりは、転職支援がメインで高スピードでITエンジニアを育成点がメリットのようです

■未経験からのITエンジニア転職されたい以下のポイントの方がターゲット

・IT業界以外ではたらいており、ITエンジニアへ転職を考えている
・転職したい
・手に職をつけたい(自分の価値を確実に上げたい)
・安定して働きたい
・とにかくエンジニアとして働きたい
・すぐに就職したい
・現場で学びながら成長したい
・就職支援をしっかりしてほしい

■まとめ

プログラミングのオンラインスクールや転職サービスが多くなってきましたね。選択肢が増えた点は良いのですが、しっかりと基礎をまなぶために独学か、オンラインスクールかを見極めて、就職・転職はご自分で考えて決めていってくださいね。

無料相談はどこも行ってますので、たくさん聞いてから判断していきましょうね。

いちばん大事な点は「プログラミング」が好きかどうか。好きであれば生業にまでできるかどうか。この2点は異なる視点です。十分自分に問いただしてくださいね。まずはやってみることですね。

0