- 投稿日:2021-01-23T19:06:45+09:00
LaradockでLaravel8の開発環境を構築する
前提
Mac
を使っているGit
インストール済Docker
インストール済できること
Laravel8
の開発環境が構築できるphpMyAdmin
でDBを参照できる手順
Laradock
をローカル環境に複製し、環境設定ファイルを編集するDocker
コンテナを起動し、コンテナに入るLaravel8
をローカル環境にインストールし、環境設定ファイルを編集するLaradock
の環境設定ファイルを編集し、Docker
コンテナ再起動Laravel8
とphpMyAdmin
の表示を確認する※コンテナは
nginx
とPHP-FPM
、Mysql
そしてphpMyAdmin
を用意します構築する
1.
Laradock
をローカル環境に複製し、環境設定ファイルを編集するLaradockを複製(複製場所は"/Users/任意の名前")
git clone https://github.com/LaraDock/laradock.git環境設定ファイル(.env)を編集
cp env-example .env vim .env編集箇所と内容
DATA_PATH_HOST=.laradock/data
COMPOSE_PROJECT_NAME=project_name
MYSQL_VERSION=5.7.31ファイル末尾に追記
DB_HOST=mysql
2.
Docker
コンテナを起動し、コンテナに入るDockerコンテナを起動
docker-compose up -d nginx mysql phpmyadmin docker-compose psDockerコンテナに入る
docker exec -it river_web_workspace_1 bash3.
Laravel8
をローカル環境にインストールし、環境設定ファイルを編集するLaravel8をローカル環境にインストール(ディレクトリ名はsrc)
composer create-project laravel/laravel src環境設定ファイル(.env)を編集
vim .env編集箇所と内容
DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret4.
Laradock
の環境設定ファイルを編集し、Docker
コンテナ再起動exit vim .env編集箇所と内容
APP_CODE_PATH_HOST=../src
docker-compose up -d nginx5.
Laravel8
とphpMyAdmin
の表示を確認するhttp://localhost/
http://localhost:8081/データベース名:mysql
ユーザー:default
パスワード:secret※DB編集する際は、先ずはルートではいり、上記ユーザーに編集権限を付与します
データベース名:mysql
ユーザー:root
パスワード:root以上になります。
- 投稿日:2021-01-23T18:17:34+09:00
【docker build】unknown instructionでエラー
- 投稿日:2021-01-23T17:48:41+09:00
AWSへDockerホストのプロビジョニングをする際にcredentialsがない旨のエラーが表示される
AWSへDockerホストのプロビジョニングをする際に、アクセスキーやシークレットキーを記述したcredentialsファイルを作成して、AWSにDocker Engineが動作するインスタンス作成するコマンドを実行したところ、下記エラーが出力されました。
$ docker-machine create --driver amazonec2 --amazonec2-open-port 8000 --amazonec2-region ap-northeast-1 aws-sandbox Error setting machine configuration from flags provided: amazonec2 driver requires AWS credentials configured with the --amazonec2-access-key and --amazonec2-secret-key options, environment variables, ~/.aws/credentials, or an instance roleこれはcredentialsのファイルがないか、もしくは作成する権限がおかしいことを意味するエラーの模様。
AWSで作成したIAMユーザの権限はadmin権限を渡しているので特に問題がないため、credentialsファイルがどうやら悪さしているみたいです。対策
調べたところ、credentialsファイルの置き場所が悪かったようです。
credentialsファイルはユーザのホームディレクトリ配下に作成しなければいけませんでした。mkdir ~/.aws vi ~/.aws/credentials適当な作業ディレクトリにawsディレクトリを作成して、その配下にcredentialsファイルを作成しておりましたが、ユーザのホームディレクトリ配下にcredentialsファイルを作成してコマンドの実行ユーザに紐付けしなければ、当然AWSへインスタンス作成はできないですよね。
これで無事AWSへインスタンス作成が完了です。
$ docker-machine create --driver amazonec2 --amazonec2-open-port 8000 --amazonec2-region ap-northeast-1 aws-sandbox Running pre-create checks... Creating machine... (aws-sandbox) Launching instance... Waiting for machine to be running, this may take a few minutes... Detecting operating system of created instance... Waiting for SSH to be available... Detecting the provisioner... Provisioning with ubuntu(systemd)... Installing Docker... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... Checking connection to Docker... Docker is up and running! To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env aws-sandbox $最後に
教材ではサラッと流されてしまうところ、一つ一つ重要視して進めていかないとうまくいかないですね。
- 投稿日:2021-01-23T16:07:00+09:00
SQLServerだからといって諦めずに、CircleCIでテスト自動化する(2021年更新版)
はじめに
2017年に書いた「SQLServerだからといって諦めずに、CircleCIでテスト自動化する」が色々古かったので、アップデートしてみました。
尚、記事と合わせてソースコードも更新しました。
imunew/php-with-docker-mssql変更点
変更したポイントを列挙していきます。
Microsoft SQL Server on Linux
が新しくなった詳しくは「Docker内の php から SQL Server に接続する(2020年版)」を参照いただきたいのですが、
Docker
イメージとPHP
用のドライバを更新しました。FROM php:7.4 # Install basic packages and extensions RUN apt-get update \ && apt-get install -y zlib1g-dev libzip-dev wget gnupg \ && docker-php-ext-install zip opcache # Composer install RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer ENV COMPOSER_ALLOW_SUPERUSER 1 # Install SQL Server extensions RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - RUN curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list RUN apt-get update RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools RUN apt-get install -y unixodbc-dev libgssapi-krb5-2 RUN pecl install sqlsrv RUN pecl install pdo_sqlsrv RUN docker-php-ext-enable sqlsrv RUN docker-php-ext-enable pdo_sqlsrv CMD ['php']
CircleCI
の設定ファイルをv1
からv2
へ
CircleCI
の設定ファイルをv2
形式で書き直しました。
以下のドキュメントが参考になりました。circleci/config.ymlversion: 2 jobs: test: docker: - image: php:7.4 environment: DEFAULT_DSN: sqlsrv:Server=localhost; DEFAULT_USERNAME: sa DEFAULT_PASSWORD: p@ssw0rd - image: mcr.microsoft.com/mssql/server:2017-latest environment: ACCEPT_EULA: Y SA_PASSWORD: p@ssw0rd resource_class: medium steps: - run: name: Install packages and PHP extensions command: | apt-get update \ && apt-get install -y zlib1g-dev libzip-dev unzip wget gnupg git \ && docker-php-ext-install zip opcache - run: name: Install MSSQL PHP extensions command: | curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list apt-get update ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools apt-get install -y unixodbc-dev libgssapi-krb5-2 pecl install sqlsrv pecl install pdo_sqlsrv docker-php-ext-enable sqlsrv docker-php-ext-enable pdo_sqlsrv - run: name: Install composer command: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer - checkout - run: name: Install dependencies command: | composer install --no-interaction --prefer-dist - run: name: Run Tests by phpunit command: | php app/bootstrap.php vendor/bin/phpunit workflows: version: 2 build-workflow: jobs: - test
docker-compose.yml
をVersion 1
からVersion 3
へ
docker-compose.yml
のフォーマットが古かったので、Version 3
で書き直しました。docker-compose.ymlversion: "3" services: php: build: ./docker/php env_file: ./docker/php/.env volumes: - .:/app/ working_dir: /app mssql: image: mcr.microsoft.com/mssql/server:2017-latest env_file: ./docker/mssql/.env ports: - "1433:1433"おわりに
3年でこんなに変わるのかと思って調べてみたら、以下のような時系列でした。
- Dockerイメージ
mcr.microsoft.com/mssql/server
がリリースされたのが、2018-09-10
PHP Driver for SQL Server
がMicrosoft ODBC Driver 17
をサポートしたのは、2018-3-23
CircleCI 2.0
がリリースされたのは、2017-07-11
docker-compose.yml v3
がリリースされたのは、2017-01-18
ソフトウェアの寿命は本当に短いですね。
ではでは。
- 投稿日:2021-01-23T15:20:43+09:00
Docker x Express x PostgreSQL x Sequelize 環境構築メモ
検索したら意外とヒット少なかったので記事化
初学者ゆえ適切でないコードや表現があるかと思います。その際は優しくご指導いただけますと幸いです。
開発環境
- macOS Catalina 10.15.7
- Docker 20.10.2
作業ディレクトリ作成
Terminalmkdir hoge/app cd app npm init適当な場所に作業ディレクトリを作成&
npm init
package nameとかは適当なものを選択。server.js作成
Terminaltouch server.js npm i --save expressserver.jsconst express = require("express"); const app = express(); app.get("/", (req, res) => { res.send("Hello World!"); }); app.listen(9000, () => { console.log("The app listening on port 5000"); });nodemon設定
node server.js
だとserver.jsを書き換えるたびに再起動しなければならないため、nodemonを設定しておく。Terminalnpm i --save nodemon
package.json"scripts": { "start": "nodemon server.js" }node.jsのイメージを作成
node.jsの公式ドキュメントを参考にコンテナを作成する。
Dockerfile編集
Terminalcd ..(appからhogeへ移動) touch DockerfileDockerfile# ベースイメージ FROM node:14.15.4 # 作業ディレクトリ WORKDIR /usr/src # packages.jsonを個別にコピーする理由は後述 COPY/packages*.json ./ RUN npm install # その他のファイル群もコンテナへコピー COPY / ./ EXPOSE 5000 # サーバースタート CMD ["npm", "start"]npm_modulesをignoreする
.dockerignorenpm_modules npm-debug.lognpm_modulesをコピーするのは時間がかかるのでignoreして、先述の
npm install
で作成する。現在のhogeディレクトリ構成はこんな感じ
buildする
Terminaldocker build -t hoge/node .-t: タグをつけるオプション(イメージの名前になる)
TerminalSuccessfully built 英数字 Successfully tagged hoge/node:latest↑こうなったらOK
コンテナ作成
Express、Postgresを組み合わせたコンテナを作成していく。
みんな大好きdocker-compose
Terminaltouch docker-compose.yml touch .envdocker-compose.ymlversion: "3" services: app: # docker-compose up実行時に開始する関連サービス(上から順に実行) depends_on: - postgres # コンテナを実行するときの元となるimage(さっき作ったやつ) image: hoge/node # コンテナの名前 container_name: "hoge_express-pg" # マウントするパス(ホストの相対パス:DockerfileのWORKDIRからの絶対パス) volumes: - ./app:/usr/src/app # ホストマシンにつなげるポート(ホスト:コンテナ) ports: - 5000:9000 # 環境変数 env_file: .env # コンテナの永続化 tty: true postgres: image: postgres:13-alpine container_name: postgres ports: - 5432:5432 volumes: - ./postgres/init:/docker-entrypoint-initdb.d env_file: .env hostname: postgres # rootにしないとあとで「権限ないで」って言われる user: root # ブラウザでdbを確認できるすごいヤツ(任意) pgadmin4: image: dpage/pgadmin4:4.20 container_name: pgadmin4 depends_on: - postgres ports: - 80:80 volumes: - ./pgadmin:/var/lib/pgadmin/storage env_file: .env hostname: pgadmin4volumesに指定したパスはホストマシンとコンテナとでファイルが共有されて便利。
.envPOSTGRES_USER=hoge POSTGRES_PASSWORD=hoge POSTGRES_INITDB_ARGS=--encoding=UTF-8 TZ=Asia/Tokyo PGADMIN_DEFAULT_EMAIL=root PGADMIN_DEFAULT_PASSWORD=rootPOSTGRES_~: dbのログイン情報と設定
TZ: TimeZone
PGADMIN_DEFAULT_~: pgAdmin4のログイン情報動作確認
Terminaldocker-compose upTerminalpostgres | 2021-01-23 01:24:24.380 JST [1] LOG: database system is ready to accept connections ~ hoge_express-pg | [nodemon] starting `node server.js` hoge_express-pg | The app listening on port 5000 ~ pgadmin4 | [2021-01-22 16:24:29 +0000] [1] [INFO] Listening at: http://[::]:80こんな感じに3つのコンテナの起動が確認できたらOK。
ブラウザ
ブラウザでlocalhost:5000にアクセスするとHello World!できる。
db作成
Ctrl+C
で一度コンテナを終了し、自動生成されたpostgres/init
フォルダにSQLファイルを追加する。
ここに配置されたSQLはコンテナ開始時に実行されるので、db作成の他、初期データの設定にも便利。Terminaltouch postgres/init/template.sql
postgres/init/template.sqlCREATE DATABASE development作成したらもう一度
docker-compose up
しておく。pgAdmin4初期設定(任意)
ブラウザで
localhost:80
にアクセスこんな感じの画面が出るので、
.env
で設定したユーザー名とパスワードでログイン。ちなみに、dpage/pgAdmin4:4は何故かこの段階でログインできない不具合があるようです(
これに気づくのに一晩費やした)。サーバー追加
ログインしたら
Add New Server
のConnection
タブで
- Host: postgres
- Port: 5432
- Mentenance database: postgres
- Username: hoge
- Password: hoge左のサーバー一覧に
postgres
とその中にdevelopment
dbが表示されればOK。もしコンテナ作成後に
.env
でパスワードなどを変更した場合は一度コンテナを削除してから再度接続を行う必要があるので注意。Sequelize設定
ここからはコンテナ内で作業する(けどvolumesで共有されているのでほとんどの作業はホスト側でやっても平気←
Docker使う意味は??)
VSCodeでDockerの拡張機能を入れてると、ここから簡単にコンテナのbashを起動できる各種パッケージインストール&Sequelize初期設定
/usr/src/app#npm i --save sequelize sequelize-cli pg npx sequelize-cli init
npx sequelize-cli init
をすると、config
,models
,migrations
,seeders
フォルダが作成されるこのディレクトリ名を見てわかるように、SequelizeはRubyのActiveRecordのようにdbのマイグレーションがJSでできるようになるスグレもの
config.json変更
/app/config/config.json{ "development": { "username": "hoge", ←.envで設定したdbのログイン情報 "password": "hoge", "database": "development", ←dbの名前 "host": "postgres", "dialect": "postgres" }, "test": { 省略 }, "production": { 省略 } }これでSequelizeの設定は完了。
Sequelizeでdbへアクセス
modelを作成
/usr/src/app#npx sequelize-cli model:generate --name Post --attributes title:string,body:string--name: model名
--attributes: modelが保有する属性(カラム)
migrations/日付-create-post
、models/post.js
の2つが自動生成されているのを確認する。migrations/20210123053140-create-post"use strict"; module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable("Posts", { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, title: { type: Sequelize.STRING, }, body: { type: Sequelize.STRING, }, createdAt: { allowNull: false, type: Sequelize.DATE, }, updatedAt: { allowNull: false, type: Sequelize.DATE, }, }); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable("Posts"); }, };models/post.js"use strict"; const { Model } = require("sequelize"); module.exports = (sequelize, DataTypes) => { class Post extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. */ static associate(models) { // define association here } } Post.init( { title: DataTypes.STRING, body: DataTypes.STRING, }, { sequelize, modelName: "Post", } ); return Post; };マイグレーション
/usr/src/app#npx sequelize-cli db:migrate/usr/src/app#> Sequelize CLI [Node: 14.15.4, CLI: 6.2.0, ORM: 6.4.0] > Loaded configuration file "config/config.json". > Using environment "development". > == 20210123053140-create-post: migrating ======= > == 20210123053140-create-post: migrated (0.022s)
migrated
となればOK。Expressからdbをさわってみる
Create
server.jsconst express = require("express"); const app = express(); + const models = require("./models/index"); app.get("/", (req, res) => { res.send("Hello World!"); }); + // createして/へリダイレクトする + app.get("/create", (req, res) => { + await models.Post.create({ + title: "sample title", + body: "sample body", + }); + res.redirect("/"); + }); app.listen(9000, () => { console.log("The app listening on port 5000"); });modelsをrequireするとき、
./models/
だと失敗するので注意。アクセス
Chromelocalhost:5000/create
pgAdminで確認
Servers/postgres/Databases/development/Schemas/public/Tables/
の中の先ほど生成したモデル名のテーブルを右クリックし、View/Edit Data->All Rows
Data Output
タブでデータがCreateされているのが確認できる。Read
server.jsconst express = require("express"); const app = express(); const models = require("./models/index"); // 全て取得して返す app.get("/", (req, res) => { + models.Post.findAll().then((posts) => { + res.send(posts); + }); - // res.send("Hello World!"); }); // createして/へリダイレクトする app.get("/create", (req, res) => { models.Post.create({ title: "sample title", body: "sample body", }); res.redirect("/"); }); app.listen(9000, () => { console.log("The app listening on port 5000"); });アクセス
Chromelocalhost:5000
無事に取得できているのが確認できた!
おしまい
あとは
ejs
を入れたりしてviewを整形したり、bodyParser
でFormデータを受け取ったりすればサービスとして本格的な開発が進められる。今回のコード
https://github.com/nullworkbench/docker-express-postgresql-sequelize
- 投稿日:2021-01-23T14:51:11+09:00
【PHP】Docker環境にphpMyadminを導入する
手順
docker-compose.ymlにphpMyadominのコンテナを追記します。
docker-compose.yml#docker-compose.ymlのバージョン version: "3.8" #docker volumeの設定 volumes: docker-volume: #services以下に各コンテナの設定を書く services: #Webサーバーのコンテナ web: image: nginx:1.18 ports: - "8000:80" depends_on: - app volumes: - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf - .:/var/www/html #アプリケーションのコンテナ app: build: ./docker/php volumes: - .:/var/www/html #データベースのコンテナ db: image: mysql:5.7 ports: - "3306:3306" environment: MYSQL_DATABASE: db_name MYSQL_USER: db_user MYSQL_PASSWORD: db_password MYSQL_ROOT_PASSWORD: root TZ: "Asia/Tokyo" volumes: - docker-volume:/var/lib/mysql # phpMyadominのコンテナ作成 phpmyadmin: image: phpmyadmin/phpmyadmin depends_on: - db environment: - PMA_ARBITRARY=1 - PMA_HOSTS=db - PMA_USER=db_user - PMA_PASSWORD=db_password ports: - "8080:80" volumes: - ./docker/phpmyadmin/sessions:/sessionsコードの下部にある
# phpMyadominのコンテナ作成
からが追記する箇所です。
portsを8080に設定しているので、localhost:8080
でphpmyadminの管理画面にアクセスできるように設定しています。
また、volumesにある./docker/phpmyadmin/sessions:/sessions
ではセッション情報をボリュームに設定して永続化するようにします。補足
参考までに作ってみた環境
↓https://github.com/yuyaamano23/Laravel_Docker_practice/tree/github-open
ちなみに僕は以下の記事を参考にphp+mysql+nginxの環境を構築しました。神記事です。
絶対に失敗しないDockerでLaravel+Vueの実行環境(LEMP環境)を構築する方法〜前編〜
絶対に失敗しないDockerでLaravel6.8+Vueの実行環境(LEMP環境)を構築する方法〜後編〜
Docker Composeでphpmyadminを導入する各々構築したDocker環境のプロジェクトにあるdocker-compose.ymlnに追記していただければ良いと思います。
- 投稿日:2021-01-23T14:04:17+09:00
sameersbn/redmineでpluginがうまくインストールできない時のtips
dockerでサクッとredmineを用意したい時、公式のイメージ以外で有名な
sameersbn/redmine
というイメージがあります。
このイメージ、plugins配下にpluginのディレクトリを作成して起動すると、Installも済ましてよきにはからってくれるのですが、一部パッケージがうまくいきません。
sammersbn/redmineのレポジトリに解決策があったので、記録のため、こちらに記載します。参照元
以下のIssueを参考にしました。
https://github.com/sameersbn/docker-redmine/issues/267どうするか
plugins\post-install.sh を用意して起動しましょう。
post-install.shbundle exec rake redmine:plugins:migrate RAILS_ENV=productionこちらを記載すると、コンテナの実行時に記載しているコマンドが実行され、うまいことやってくれます。
Issueではeasy guntのインストールでやり取りされていましたが、今回の対応で、国内で有名なview customize plugin
や、かんばんを使えるようにするAgile
なんかが簡単に使えるようになります。
- 投稿日:2021-01-23T00:55:00+09:00
AL2にdocker-composeをインストールする
- 投稿日:2021-01-23T00:34:11+09:00
【Docker × Laravel8 Jetstream】 *エラー*
*目的
Docker × Laravel8 の環境でJetstreamでユーザー管理機能を作成しようとした時にエラーが出たので、どのような対策をとったのか忘却録にまとめています。同じエラーの出ている方の参考になれば幸いです。1) メモリが足りないというエラー
root@4f02df05a7b0:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) [22-Jan-2021 21:24:37 Asia/Tokyo] PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.やったこと) 容量を増やすために追記
参考: https://qiita.com/ucan-lab/items/af39b71c6eb304ddf696
php.ini// コマンドで操作できるそうですが、私は直接書き込みました。 memory_limit = 256M ↓ memory_limit = -1** ↑ファイルに修正書き加えた時dockerbuildし直してます
docker-compose down docker-compose up -d --build2) 容量は増やしたが、Composer で jetstream をインストールできない
root@e0c9300fc452:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Installation failed, reverting ./composer.json to its original content. [Composer\Downloader\TransportException] The "https://packagist.org/p/symfony/polyfill-iconv%24eefa799e6ec8b425e65a6cb02164af323385692efc2847688bc204cb09260b33.j son" file could not be downloaded (HTTP/1.1 404 Not Found) require [--dev] [--prefer-source] [--prefer-dist] [--fixed] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...やったこと①)composer diagでチェック(どこが悪いか診断するコマンド)
下記のFAILが出ている。
Checking pubkeys: FAILroot@e0c9300fc452:/work# composer diag Checking composer.json: OK Checking platform settings: OK Checking git settings: OK Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: FAIL *** ここでFAILが出ている *** Missing pubkey for tags verification Missing pubkey for dev verification Run composer self-update --update-keys to set them up Checking composer version: You are not running the latest stable version, run `composer self-update` to update (1.10.19 => 2.0.8) Composer version: 1.10.19 PHP version: 7.4.14 PHP binary path: /usr/local/bin/php OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019やったこと②) キー(pubkey)の設定し直しを行う。
# composer self-update --update-keys to set them up参考記事
https://qiita.com/aberyotaro/items/782fd6ccc053e50f2e78
https://teratail.com/questions/188872root@6c3992698050:/work# composer self-update --update-keys to set them up [Symfony\Component\Console\Exception\RuntimeException] Too many arguments, expected arguments "command" "version". self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--1] [--2] [--set-channel-only] [--] [<version>]// このコマンドではkeyの設定し直しができない!! # composer self-update --update-keys to set them up3) 上記の通り、Too many arguments のエラーが出る。
やったこと) keyの設定を変更するコマンドを変えて再度実行
# composer self-update --update-keyskyeを入力するための扉が開いた!!
root@6c3992698050:/work# composer self-update --update-keys Open https://composer.github.io/pubkeys.html to find the latest keys Enter Dev / Snapshot Public Key (including lines with -----):↑↑↑ pubkeyの入力プロンプトがでたので、下記の2つのkeyを入力。
入力内容はこのサイト=> https://composer.github.io/pubkeys.html
怪しそうだけど...
● Dev / Snapshot Public Key
● Tags Public Key** 解決 **
MBP:docker-laravel-handson airidoi$ docker-compose exec app bash root@6a18b1a6d2ff:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 9 installs, 0 updates, 0 removals - Installing paragonie/constant_time_encoding (v2.4.0): Downloading (100%) - Installing pragmarx/google2fa (8.0.0): Downloading (100%) - Installing dasprid/enum (1.0.3): Downloading (100%) - Installing bacon/bacon-qr-code (2.0.3): Downloading (100%) - Installing laravel/fortify (v1.7.5): Downloading (100%) - Installing jaybizzle/crawler-detect (v1.2.103): Downloading (100%) - Installing mobiledetect/mobiledetectlib (2.8.34): Downloading (100%) - Installing jenssegers/agent (v2.6.4): Downloading (100%) - Installing laravel/jetstream (v2.1.1): Downloading (100%) bacon/bacon-qr-code suggests installing ext-imagick (to generate QR code images) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: fruitcake/laravel-cors Discovered Package: jenssegers/agent Discovered Package: laravel/fortify Discovered Package: laravel/jetstream Discovered Package: laravel/sail Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. 74 packages you are using are looking for funding. Use the `composer fund` command to find out more!嬉しい! でもまた今日も夜更かししてしまった...こうやって生活リズムが崩れるんです。
最後に1点疑問
このコマンド実行のあと、15分くらい結果が出るにのかかります。
かかりすぎでは? 何かおかしいのかなと思っているのですが、どうでしょうか。
もしご存知の方いらっしゃったらコメント欄にご記入いただけますととてもとても嬉しいです!composer require laravel/jetstream
- 投稿日:2021-01-23T00:34:11+09:00
【Docker × Laravel8 Jetstream】 *エラー*インストールの際のエラー
*目的
Docker × Laravel8 の環境でJetstreamをインストール時にエラーが発生。どのような対策をとったのか忘却録にまとめています。同じエラーの出ている方の参考になれば幸いです。1) メモリが足りないというエラー
root@4f02df05a7b0:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) [22-Jan-2021 21:24:37 Asia/Tokyo] PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.やったこと) 容量を増やすために追記
参考: https://qiita.com/ucan-lab/items/af39b71c6eb304ddf696
php.ini// コマンドで操作できるそうですが、私は直接書き込みました。 memory_limit = 256M ↓ memory_limit = -1** ↑ファイルに修正書き加えた時dockerbuildし直してます
docker-compose down docker-compose up -d --build2) 容量は増やしたが、Composer で jetstream をインストールできない
root@e0c9300fc452:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Installation failed, reverting ./composer.json to its original content. [Composer\Downloader\TransportException] The "https://packagist.org/p/symfony/polyfill-iconv%24eefa799e6ec8b425e65a6cb02164af323385692efc2847688bc204cb09260b33.j son" file could not be downloaded (HTTP/1.1 404 Not Found) require [--dev] [--prefer-source] [--prefer-dist] [--fixed] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...やったこと①)composer diagでチェック(どこが悪いか診断するコマンド)
下記のFAILが出ている。
Checking pubkeys: FAILroot@e0c9300fc452:/work# composer diag Checking composer.json: OK Checking platform settings: OK Checking git settings: OK Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: FAIL *** ここでFAILが出ている *** Missing pubkey for tags verification Missing pubkey for dev verification Run composer self-update --update-keys to set them up Checking composer version: You are not running the latest stable version, run `composer self-update` to update (1.10.19 => 2.0.8) Composer version: 1.10.19 PHP version: 7.4.14 PHP binary path: /usr/local/bin/php OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019やったこと②) キー(pubkey)の設定し直しを行う。
# composer self-update --update-keys to set them up参考記事
https://qiita.com/aberyotaro/items/782fd6ccc053e50f2e78
https://teratail.com/questions/188872root@6c3992698050:/work# composer self-update --update-keys to set them up [Symfony\Component\Console\Exception\RuntimeException] Too many arguments, expected arguments "command" "version". self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--1] [--2] [--set-channel-only] [--] [<version>]// このコマンドではkeyの設定し直しができない!! # composer self-update --update-keys to set them up3) 上記の通り、Too many arguments のエラーが出る。
やったこと) keyの設定を変更するコマンドを変えて再度実行
# composer self-update --update-keyskyeを入力するための扉が開いた!!
root@6c3992698050:/work# composer self-update --update-keys Open https://composer.github.io/pubkeys.html to find the latest keys Enter Dev / Snapshot Public Key (including lines with -----):↑↑↑ pubkeyの入力プロンプトがでたので、下記の2つのkeyを入力。
入力内容はこのサイト=> https://composer.github.io/pubkeys.html
怪しそうだけど...
● Dev / Snapshot Public Key
● Tags Public Key** 解決 **
MBP:docker-laravel-handson airidoi$ docker-compose exec app bash root@6a18b1a6d2ff:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 9 installs, 0 updates, 0 removals - Installing paragonie/constant_time_encoding (v2.4.0): Downloading (100%) - Installing pragmarx/google2fa (8.0.0): Downloading (100%) - Installing dasprid/enum (1.0.3): Downloading (100%) - Installing bacon/bacon-qr-code (2.0.3): Downloading (100%) - Installing laravel/fortify (v1.7.5): Downloading (100%) - Installing jaybizzle/crawler-detect (v1.2.103): Downloading (100%) - Installing mobiledetect/mobiledetectlib (2.8.34): Downloading (100%) - Installing jenssegers/agent (v2.6.4): Downloading (100%) - Installing laravel/jetstream (v2.1.1): Downloading (100%) bacon/bacon-qr-code suggests installing ext-imagick (to generate QR code images) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: fruitcake/laravel-cors Discovered Package: jenssegers/agent Discovered Package: laravel/fortify Discovered Package: laravel/jetstream Discovered Package: laravel/sail Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. 74 packages you are using are looking for funding. Use the `composer fund` command to find out more!嬉しい! でもまた今日も夜更かししてしまった...こうやって生活リズムが崩れるんです。
最後に1点疑問
このコマンド実行のあと、15分くらい結果が出るにのかかります。
かかりすぎでは? 何かおかしいのかなと思っているのですが、どうでしょうか。
もしご存知の方いらっしゃったらコメント欄にご記入いただけますととてもとても嬉しいです!composer require laravel/jetstream
- 投稿日:2021-01-23T00:34:11+09:00
【Docker × Laravel8 Jetstream】 *エラー*Jetstreamインストール時のエラー
*目的
Docker × Laravel8 の環境でJetstreamをインストール時にエラーが発生。どのような対策をとったのか忘却録にまとめています。同じエラーの出ている方の参考になれば幸いです。1) メモリが足りないというエラー
root@4f02df05a7b0:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) [22-Jan-2021 21:24:37 Asia/Tokyo] PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.やったこと) 容量を増やすために追記
参考: https://qiita.com/ucan-lab/items/af39b71c6eb304ddf696
php.ini// コマンドで操作できるそうですが、私は直接書き込みました。 memory_limit = 256M ↓ memory_limit = -1** ↑ファイルに修正書き加えた時dockerbuildし直してます
docker-compose down docker-compose up -d --build2) 容量は増やしたが、Composer で jetstream をインストールできない
root@e0c9300fc452:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Installation failed, reverting ./composer.json to its original content. [Composer\Downloader\TransportException] The "https://packagist.org/p/symfony/polyfill-iconv%24eefa799e6ec8b425e65a6cb02164af323385692efc2847688bc204cb09260b33.j son" file could not be downloaded (HTTP/1.1 404 Not Found) require [--dev] [--prefer-source] [--prefer-dist] [--fixed] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...やったこと①)composer diagでチェック(どこが悪いか診断するコマンド)
下記のFAILが出ている。
Checking pubkeys: FAILroot@e0c9300fc452:/work# composer diag Checking composer.json: OK Checking platform settings: OK Checking git settings: OK Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: FAIL *** ここでFAILが出ている *** Missing pubkey for tags verification Missing pubkey for dev verification Run composer self-update --update-keys to set them up Checking composer version: You are not running the latest stable version, run `composer self-update` to update (1.10.19 => 2.0.8) Composer version: 1.10.19 PHP version: 7.4.14 PHP binary path: /usr/local/bin/php OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019やったこと②) キー(pubkey)の設定し直しを行う。
# composer self-update --update-keys to set them up参考記事
https://qiita.com/aberyotaro/items/782fd6ccc053e50f2e78
https://teratail.com/questions/188872root@6c3992698050:/work# composer self-update --update-keys to set them up [Symfony\Component\Console\Exception\RuntimeException] Too many arguments, expected arguments "command" "version". self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--1] [--2] [--set-channel-only] [--] [<version>]// このコマンドではkeyの設定し直しができない!! # composer self-update --update-keys to set them up3) 上記の通り、Too many arguments のエラーが出る。
やったこと) keyの設定を変更するコマンドを変えて再度実行
# composer self-update --update-keyskyeを入力するための扉が開いた!!
root@6c3992698050:/work# composer self-update --update-keys Open https://composer.github.io/pubkeys.html to find the latest keys Enter Dev / Snapshot Public Key (including lines with -----):↑↑↑ pubkeyの入力プロンプトがでたので、下記の2つのkeyを入力。
入力内容はこのサイト=> https://composer.github.io/pubkeys.html
怪しそうだけど...
● Dev / Snapshot Public Key
● Tags Public Key** 解決 **
MBP:docker-laravel-handson airidoi$ docker-compose exec app bash root@6a18b1a6d2ff:/work# composer require laravel/jetstream Using version ^2.1 for laravel/jetstream ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 9 installs, 0 updates, 0 removals - Installing paragonie/constant_time_encoding (v2.4.0): Downloading (100%) - Installing pragmarx/google2fa (8.0.0): Downloading (100%) - Installing dasprid/enum (1.0.3): Downloading (100%) - Installing bacon/bacon-qr-code (2.0.3): Downloading (100%) - Installing laravel/fortify (v1.7.5): Downloading (100%) - Installing jaybizzle/crawler-detect (v1.2.103): Downloading (100%) - Installing mobiledetect/mobiledetectlib (2.8.34): Downloading (100%) - Installing jenssegers/agent (v2.6.4): Downloading (100%) - Installing laravel/jetstream (v2.1.1): Downloading (100%) bacon/bacon-qr-code suggests installing ext-imagick (to generate QR code images) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: fruitcake/laravel-cors Discovered Package: jenssegers/agent Discovered Package: laravel/fortify Discovered Package: laravel/jetstream Discovered Package: laravel/sail Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. 74 packages you are using are looking for funding. Use the `composer fund` command to find out more!嬉しい! でもまた今日も夜更かししてしまった...こうやって生活リズムが崩れるんです。
4) 最後に1点疑問
このコマンド実行のあと、15分くらい結果が出るにのかかります。
かかりすぎでは? 何かおかしいのかなと思っているのですが、どうでしょうか。
もしご存知の方いらっしゃったらコメント欄にご記入いただけますととてもとても嬉しいです!composer require laravel/jetstream