-
Notifications
You must be signed in to change notification settings - Fork 6
Install Docker
Windows10・11で開発環境をDockerで構築する手順です。
コマンドプロンプト、もしくはPowerShellを管理者権限で起動し、インストールしてください。
wsl --install -d {distribution}
任意のユーザー、パスワードを入力すれば完了です。
参考:以下のコマンドでインストール可能なディストリビューションを確認できます。
wsl -l -o
Docker公式サイトからダウンロード、インストールをしてください。
Docker Desktop for Mac and Windows | Docker
WSLのターミナルにて、Connect-CMSをgit cloneして、ソースコードをダウンロードします。
以下の手順でターミナルを開きます。
- 「Remote - WSL」 をインストールする
- VSCの左下「><」をクリック、「New WSL Window」を選択しWSLに入る
- ターミナル(T) -> 新しいターミナル でWSLのターミナルを開く
Connec-CMSのソースコードをダウンロードします。
mkdir src # お好きなディレクトリにgit clone してください。
cd src
git clone https://github.com/opensource-workshop/connect-cms.git
cd connect-cms
※ 「注意」connect-cmsをwindows側のフォルダに配置して、シンボリックリンクで共有はしない方がよいです。DockerはLinuxのため、windowsとのファイルのやり取りは都度変換が走って遅いです。また db のファイル永続化がうまくいかず、db コンテナが再起動を繰り返す挙動になりました。
Docker Composeを利用して、WEB、DB、メールサーバーを立ち上げます。
docker pull php:7-apache
docker-compose up -d
※ docker-composeが無い場合(The command 'docker-compose' could not be found
エラー)、Docker Desktopを起動すれば使えるようになります。
セットアップのシェルを用意しています。コンテナに入り、シェルを実行します。
docker exec -it app bash
# appコンテナにログイン
bash /var/www/html/connect-cms/docker/app/setup.sh
cd /var/www/html/connect-cms/
### ※ 開発環境の場合、下記コマンドも追加実行
COMPOSER=composer-dev.json composer install
ブラウザからlocalhostを確認してください。 Connect-CMSの画面が確認出来れば完了です。
ソースコードを修正したい場合は、このままVSCのリモートウィンドウで進めると便利です。
もちろん、githubへpushできます。
- Docker Desktopを起動
- VS CodeでWSLのターミナルを開く
- VS Code起動
- 「Remote Explore」>(Remote Explore上部)のセレクトボックス「WSL Tergets」選択
- Connect環境を選んで開くとVS Code「WSLのConnect環境」が開く
- その環境で
Ctrl+@
でWSLのターミナル起動
- その環境で
- WSLのターミナルで操作
- DockerでConnect-CMSを立ち上げる
docker-compose up -d
- コンテナに入る
docker exec -it app bash
- DockerでConnect-CMSを立ち上げる
- localhostでConnect-CMSが見れる
# github の ユーザー名、メールアドレスを設定
# これをやらないと、githubでcommit log がgithubのアカウントと紐づかないです
git config --global user.name {username}
git config --global user.email "{mail address}"
# 改行コードの自動変換 OFF
git config --global core.autocrlf false
メモリが16GBあれば問題なさそうですが、8GBだと激重になることがあります。
そういうときは、WSLが使えるメモリを制限することで解消します。
Windowsにある.wslconfigを修正します。
メモリ8GBのPCでは、2GBでちょうどよかったです。
%USERPROFILE%.wslconfig
[wsl2]
memory=2GB
swap=0
Connect-CMS/docker/app/Dockerfile
#FROM php:7-apache
FROM php:8.1-apache
- Dockerfile の
FROM
で記載する文字は、Docker Hubのphp公式イメージ 参照-
php:<version>-apache
の場合の有効な<version>
は、Tagsページをapacheで絞り込みで確認できます。
-
# appコンテナからログアウト後
docker pull php:8.1-apache
docker-compose build
docker-compose up -d
docker exec -it app bash
# appコンテナにログイン
# php -v
PHP 8.1.10 (cli) (built: Sep 1 2022 21:16:25) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies
これでphpが切り替わりました。
- WSL のインストール | Microsoft Docs
- docker compose コマンド| Docker ドキュメント
- Docker入門(第六回)〜Docker Compose〜 | さくらのナレッジ
// 起動
docker-compose up -d
// 起動状態 確認
docker-compose ps
// コンテナID 確認
docker ps
// 停止
docker-compose stop
// コンテナ削除
docker-compose rm
// イメージも合わせて削除
docker-compose down --rmi all
docker-compose logs -f app
- (左側) Containers>app (行)縦・・・押下>View details押下
git pull等でファイルの書きこみpermission が無くなった場合、書きこみができずにエラーになります。
その場合はコンテナ内で下記コマンド例を参考に、パーミッション変更やファイルオーナーを修正するとエラーが解消します。
chmod o+w -R /var/www/html/connect-cms/
docker composeする前に、先に各イメージをpullしておく
docker pull php:7-apache
akagane99@vaiof14:~/connect-cms-docker$ docker-compose up -d
[+] Building 10.7s (2/2) FINISHED docker:default
=> [app internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.48kB 0.0s
=> ERROR [app internal] load metadata for docker.io/library/php:7-apache 10.7s
------
> [app internal] load metadata for docker.io/library/php:7-apache:
------
failed to solve: php:7-apache: failed to authorize: failed to fetch anonymous token: Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fphp%3Apull&service=registry.docker.io": dial tcp: lookup auth.docker.io on 172.19.64.1:53: read udp 172.19.73.60:52132->172.19.64.1:53: i/o timeout
- home
- Overview
- Install
- Install (インストール)(Linux等へのインストール:root権限ある場合)
-
Install-sakura(さくらのレンタルサーバ)
- Install-sakura-root(ドキュメントルート版)
- Install-Xserver(XServer)
- Install-lolipop(ロリポップ-ハイスピードプラン)
- Install-ColorfulBox(カラフルボックス)
- install-CentOS7+PHP7
- Install-XAMPP(Windows+XAMPP)
- install-Docker
- Update
- Plans
- Data
- File Upload
- Design
- Theme(テーマ)
- Font-Icon(アイコン)
- Button(ボタン)
- Display of input error(入力エラーの表示)
- Multi Language
- Policies
- Plugin
- Basic function(基本の関数)
- Opac(蔵書管理)
- OpeningCalendar(開館カレンダー)
- Template(テンプレート)
- Cabinet(キャビネット)
- Whatsnew(新着)
- Search(サイト内検索)
- Approval(承認機能)
- Holidays(祝日管理)
- Menu(メニュー)
-
OriginalPlugin(オリジナル・プラグイン開発)
- OriginalPluginFiles(ファイル一覧)
- Sample.php
- SamplePost.php
- plugin.ini
- SamplesPlugin.php
- create_samples_table.php
- create_sample_posts_table.php
- samples_frame_edit_tab.blade.php
- card/index.blade.php
- card/template.ini
- default/bucket.blade.php
- default/edit.blade.php
- default/index.blade.php
- default/list_buckets.blade.php
- default/show.blade.php
- default/template.ini
- WYSIWYG
- Session
- Programing tips
- Rule(ルール)
- Laravel method tips
- Laravel reference pages
- PHP
- phpcs
- Datetimepicker(日付入力)
- Hook(処理のフック)
- SQL
- Pull-Request(Web画面上)
- Post
- Optimize
- Composer
- npm
- コントローラー側の$this--can()-の調査
- API (外部サービスAPI)
- Test Case(テストケース)
- memo(永原のメモ)
- TCPDF(実装サンプル)
- Phpunit(ユニットテスト)
-
Dusk(ブラウザテスト)
- Github-Actions-Dusk(Github Actionsでブラウザテスト)
- Dusk-Manual(マニュアル自動生成)
- Develop-Windows(Windows開発環境)
- users_columns(ユーザ任意項目)
- container-page-beta(コンテナ方式(ページ)対応(ベータ版))
- Migration
- Other
- Link
- MultiLanguage(多言語化の際の注意点)