DockwareによるShopware「6.5系」の環境構築(WSL2)
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
![Shopware](https://principle-works.jp/media/magefan_blog/shopware/shopware.png)
前回はDenによるShopware6.5の環境構築についてご紹介しました。
今回は、Shopware公式でも紹介されている、「Dockware」での構築を紹介します。
DockwareはShopwareの環境が既にインストールされているDockerイメージです。
Dockwareは構築だけなら数秒でできるところが魅力的ですが、開発する際変更したほうが良い箇所がありましたので、そこも踏まえ紹介します。
実行環境
WSL2: 1.2.5.0
Ubuntu: 22.04
dockware/dev: 6.5.2.1
環境構築
すぐにShopwareを試したい場合、下記のコマンドにより1分足らずで完了できます。
docker run --rm -p 80:80 dockware/dev:latest
今回はdockware/devイメージをそのまま使うのではなく、新しいイメージをビルドします。
dockware内ではwww-data(33:33)がユーザーとして設定されていますが、ホストのユーザーは1000:1000であることが多いかと思われます。
両者が異なると、ホスト側で作成したファイルが原因でファイルパーミッションの問題が発生してしまうため、ホストのユーザーと合わせます。
Dockerfileを作成し、下記のように記述します。(記事執筆時の最新バージョンは6.5.2.1です。)
FROM dockware/dev:6.5.2.1
USER root
RUN groupmod -g 1000 www-data && usermod -u 1000 www-data \
&& chmod 0755 ~www-data \
&& mkdir -p /var/www/html \
&& chown www-data:www-data /var/www/html \
&& echo "www-data ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/nopasswd
USER www-data
次に、同じディレクトリ下にdocker-compose.ymlを作成し、下記のように記述します。
version: "3"
services:
shopware:
build: .
container_name: shopware
ports:
- "81:80"
- "3306:3306"
- "22:22"
- "8888:8888"
- "9999:9999"
volumes:
- "db_volume:/var/lib/mysql"
networks:
- web
environment:
- PHP_VERSION=8.1
volumes:
db_volume:
driver: local
networks:
web:
external: false
portsの部分はすでにホスト側で使っているポートがある場合もあると思います。私の場合、80番ポートはDenのtraefikが使用しているため、81に変更しています。左側の数字は適宜変更してください。
dockerコンテナを立ち上げます。
docker-compose up -d
dockwareには/var/www/html/以下のファイルも全て梱包されているため、ファイルをホスト側にコピーし、それをbind mountingでコンテナ内と同期させます。
srcディレクトリを作成し、その中にコンテナ内のShopwareをコピーします。
docker cp shopware:/var/www/html/. ./src
docker-compose.ymlに下記行を追記します。
volumes:
- "db_volume:/var/lib/mysql"
- "./src:/var/www/html" <-この行
dockerコンテナを再起動します。
docker-compose up -d
shopwareコンテナ内に入ります。
docker-compose exec shopware bash
APP_URLを変更します。(80番ポートから変更した場合)
perl -pi -e 's#^APP_URL.*#APP_URL=http://localhost:81#' .env
既にデモデータが作成されていますが、80番ポートから変更した場合、sales channelのドメイン名が異なるため変更します。
bin/console sales-channel:update:domain localhost:81
ここまででShopwareのインストールは完了です。
下記のURLからフロント画面、管理画面が表示されることを確認してみましょう。
http://localhost:81 (フロント画面)
http://localhost:81/admin (管理画面)
尚、管理画面は下記のログイン情報で入ることができます。
Username: admin
Password: shopware
以下の画像の通りに表示されれば成功です。
フロント画面:
管理画面:
次回予告
今回はDockwareによるShopware6.5系のインストール方法をご紹介しました。
次回はDevenvによるShopware6.5系のインストール方法をご紹介します。