My days of...

生活のことなど、がんばろう

docker-composeで「"」を使う・使わない、どっち?

はてなブログ、自分が何書いたとか過去記事とか見ようとすると、表示まですごく時間がかかる。体感でどのくらいだろう。。。20秒〜30秒以上かかっているような気がする。広告入れてるからかも。

ちょっと前にDockerのLAMP環境だいたい理解したとか言ってましたが、MySQLのデータの永続化(コンテナを削除してもデータが消えないとかいうやつ)の方法が理解できておらず。コンテナ消したら消えるよねーと思ってましたが、このデータもvolumesを使えば残せるんですね。気が付いてなかった。。。

version: '3'
services:
db:
image: mysql:latest
environment:
MYSQL_DATABASE: lamp_docker
MYSQL_USER: lamp_docker
MYSQL_PASSWORD: password
MYSQL_ALLOW_EMPTY_PASSWORD: TRUE
volumes:
- ./dbmysql:/docker-entrypoint-init.d # <- 初回だけ
- ./dbmysq/db:/var/lib/mysql # <- データ保存

volumes を複数にしたい場合は、""で囲むとMySQLのコンテナが起動せず。もしかして””をつけてたのが間違いだったかも。

公式ドキュメントをさっと見たがどちらが正解か分からず。。。

 

 

SnoreToastという???アプリ

SnoreToastというアプリがいつの間にかインストールされてました。なにこれ?

Googleなどで検索すると、node.jsでGulpをインストールすると入る通知アプリらしい。Windows 8以降にインストールされる模様。

www.5cho-me.com

保存される場所も

Windows11のProgram Filesフォルダではなくて、node.jsをインストールしたフォルダの\node_modules\node-notifier\vendor\snoreToastだった。node-notifierをインストールすると、SnoreToast.exeもインストールされるらしい。node-notifierは、Gulpのgulp-notifyをインストールするとインストールされる。

とのことなので、Gulpをインストールすると勝手についてくると思っていいかも。

github.com

 

 

 

ShrarePointフレームワークのチュートリアル

SharePointアプリが作れると聞いて頑張ってみたが、TypeScriptかReactJSの学習が必要と実感。それに加えGulp、Yeoman、@microsoft/sharepoint に慣れも必要。全部インストールするにはNode.jsが必要。

スクリプトを書くのはVisual Studio Codeでできる。Visudal Studioでも可能みたいだが試していないので不明。

チュートリアルは、MS公式のビデオを見ながらドキュメントを閲覧。

learn.microsoft.com

learn.microsoft.com

learn.microsoft.com

learn.microsoft.com

チュートリアルをきちんと読んでなかったので、パッケージ化してできたアプリをSharePointへデプロイして動かないところで詰まった。SharePointでのプレビューは動いてるが、アップロードしたアプリが動作しない。エラーメッセージも何かがおかしい、みたいなメッセージしか出ないし。

理由はローカルサーバー上で動いてるものをデプロイしていたため。アプリを全てSharePoint側(M365側)で動作させるようパッケージを作る必要があった。

gulp bundle --ship

gulp package-solution --ship

と --ship オプションが必要。bundle と package-solutionコマンドは、--shipオプションがなくてもパッケージ化して.sppkgファイルが作成される。そのためパッケージファイルができて完成した、と誤解した。

SharePointアプリの開発は、WindowsMacLinuxとOSに関係なく可能。開発用の環境(デプロイして試せる場所)はM365デベロッパーセンターの開発者プログラムに申し込んで使用できるM365 E5のテスト環境。

developer.microsoft.com

興味ある人は開発者プログラムに申し込んで、秋の夜長のプログラム三昧で過ごしてみてはいかが?Officeアドインとか作って試せるみたい。あと、Power Platformもちょっと試せる。

機会があればSharepointにファイルが追加されたらTeamsへ通知するようなアプリも試してみたい。Power Automateで作る方が簡単かもしらん。。。

 

久しぶりにdocker-composeでLAMP環境を作るのを頑張ってみた

1年に1、2回、思い出したようにDockerを覚えようとか頑張ろうとして忘れてます。ということで今回も久しぶりのDockerでLAMP環境を作ることに。

参考にしたのは、こちらのYoutubeの動画。

www.youtube.com

最終的にできたdocker-compose.ymlの内容

version: '3'
services:
  db:
    image: mysql:latest
    environment:
      MYSQL_DATABASE: lamp_docker
      MYSQL_USER: lamp_docker
      MYSQL_PASSWORD: password
      MYSQL_ALLOW_EMPTY_PASSWORD: 1
    volumes:
      - "./db:/docker-entrypoint-initdb.d"
    networks:
      - lamp-docker
  www:
    depends_on:
      - db
    build:
      context: ./php
      dockerfile: Dockerfile
    volumes:
      - "./:/var/www/html"
    ports:
      - 80:80
      - 443:443
    networks:
      - lamp-docker
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    ports:
      - 8001:80
    environment:
      - PMA_HOST=db
      - PMA_PORT=3306
    networks:
      - lamp-docker
networks:
  lamp-docker:
    driver: bridge

servicesのwwwにあるbuild箇所はcontext:./php でフォルダを指定してその中にDockerfileを置いた。

FROM php:8.1.10-apache-buster

RUN docker-php-ext-install mysqli

何となくdocker-compose.ymlの中身が理解できてきた。足掛け5年くらい?ドキュメントをちゃんと読まないのと時々しかやってないから覚えない。VirtualBox+Vagrantの方がいいかも。

 

Excelで10年前の日付を自動で計算する

Excelで自動的に10年前の日付を取得する方法。

2021年12月18日の10年前の2011年12月18日ですが、Excelの計算式では

DATE関数を使って、元の日付をバラバラにすれば10年前の日付が取れます。

Excel Date関数

Excel DATE 関数

DATEの中にYEARとMONTH、DAY関数で年月日を登録すれば計算してくれます。10年前なので、YEAR(Q35)-10とすると10年前になります。+10とすると10年後ですね。あと月や日も同様で、DAY()-10 or DAY() +10とすれば10日前、10日後となります。

DATE計算例

Excel Date計算式

和暦も同様に計算してもらえるのは助かります。書式で設定することで、和暦の計算も簡単に対応でした。

和暦のExcel Date関数計算

和暦のDATE結果

 

 

 

MacでVirtualBox+Vagrantを使ってLAMP環境を作る - Apacheのインストールだけ

Mac (Intel) Big Sur にVagrantを使ってLAMP環境を再度設定予定。Dockerを使う方がいいかもだが、VagrantUbuntu 20.04を入れて、今回はApacheをインストールまで。VirtualBoxVagrantはインストール済。

Terminalから

vagrant box add "bento/ubuntu-20.04"

でBox追加。作業するフォルダに移動して

vangrant init "bento/ubuntu-20.04"

でVagrantfileの作成。

vagrant up

これでBoxをダウンロードして、VirtualBox上にUbuntuの環境を作成。完了したら

vagrant ssh

で環境に入っていき、

sudo apt update
sudo apt upgrade

を行って、最新にする。一旦CTRL + Dでログアウトし、Vagrantfileの編集をした。

config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "./www", "/var/www/html", :owner => 'vagrant', :group => 'www-data', :mount_options => ['dmode=755,fmode=755']

この辺を編集(コメントアウトを外したり)、追加して、

vagrant reload

これで更新されたVagrantfileの内容が適用されました。

再度、vagrant ssh で環境内に入り、

sudo apt install -y apache2

としてApacheサーバーをインストール。Mac側からChromeで「http://localhost:8080/」としてアクセスすると

f:id:tako1192:20211029232557p:plain

が表示されたのでとりあえず成功。しかし、IP:192.168.33.10でブラウザでアクセスしたら

f:id:tako1192:20211029232710p:plain

アクセスできず。何か設定が変わったのかな?
ということで、今回はここまで。VagrantVirtualBoxは以前はよく使っていたけど、ちょっと離れたから全然情報がない感じ。LAMPはもう古いとかいう記事が多くて、情報集めるのが大変でした。

 

 

Power AutomateでOneDriveのCSVデータを取得してみた

Power AutomateでCSVを読み込む方法を調べてみた。主に練習のため閲覧させて貰ったサイトはこちら。

blog-tips.sekenkodqx.jp

このサイトで説明されている方法をほぼそのままやりました。所謂写経ってところ。サンプルとして、OneDriveの特定のフォルダに保存したCSVファイルをPower Automateで読む方法の紹介。(Power Automate Desktopではないです)

OneDriveにあるファイルを指定

データを収納する変数を指定

ループでCSVのデータを取り出す

の3段階。

わかりにくいな、と感じたのは、アクション種類の「変数」。

Power Automateアクション「変数」

変数アクションこのアクションは、変数を作成して、その変数に対して初期値を設定・追加するという機能ですが、日本語訳がおかしいのかどうかは知らないけれど、変数の設定と配列変数に追加、文字列変数に追加の意味合いが思っていたものと異なるよう。
そのため、「〇〇に追加」を選択すること、指定した変数に値を入れられずエラーが出てしまい、2〜3時間悩んでました。「変数の指定」を選択すると、エラーなく動きました。

最終的に変数に入れられし、下のように動いたので、とりあえずよかったかも。

Power Automate Flow

情報としては、Googleで「Power Automate」と検索するとPower Automate for Desktopの情報も一緒に出てくることもあって戸惑うことがありますが、少しずつ慣れていきたい。

スクリプトを書いた方が楽なんじゃ。。。と思うこともありましたが、そういうスクリプトを書く方法もあるようなのでこれからの学習次第。