@kenji_0304

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Docker-Compose nginx、php、SqlServerで環境構築する方法をご教授ください

初めまして、最近ITに興味を持ち自分で勉強している大学生です。

初めて自分で環境構築を行いたく、Dockerを使用していますが、
Docker-composeファイルで躓いています。。。

初歩的な質問で申し訳ないのですが、
ご教授して頂けると幸いです。

nginx、php、SQLserverのコンテナを作成した場合がよくわからず、
以下の記述でdocker-compose up を実行すればコンテナを作成できるのでしょうか。
また、DockerFileは自分で作成する場合は、どの様な記述になるのでしょうか。
(記述は下記URLを参考に記載しました
https://peblo.gs/cakephp-env-with-docker/
https://qiita.com/fattonton1/items/a622cf5d92d0bae95f42)

フォルダ階層:
└ www/
└ cakephp-with-docker/ ←今ここにいる
├ src/
└ docker/
├ nginx/
├ php/
└ mssql/
└ conf.d/

docker-composeファイル:
version: '3.9'
volumes:
db-store:
services:
web:
image: nginx:1.21.6-alpine
ports:
- 34251:80
volumes:
- ./src:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
app:
build: ./docker/php
volumes:
- ./src:/var/www
links:
- mssql
depends_on:
- mssql
mssql:
image: mcr.microsoft.com/mssql/server:2019-latest
container_name: sql-server-2019-express
ports:
- 1433:1433
environment:
- ACCEPT_EULA=Y
env_file:
- sql-server-2019.env
volumes:
- ./docker/mssql/conf.d:/etc/mssql/conf.d
- db-store:/var/lib/mssql

0 likes

1Answer

```sh
定義コードは半角```で囲みましょう。
```

yum install -y docker-compose-cli

docker compose ls
cd ./cakephp-with-docker
ls docker-compose.yml Dockerfile
docker compose build
docker compose up -d
docker compose ps -a
docker compose top

dockerはdocker-compose.yml Dockerfileの2つのファイルを入手して実行するだけで、他人の環境を構築できる優れものです。
 dockerは1コンテナ、1アプリ実行が基本なので、1コンテナに複数のミドルウェアを混在させないため、docker-compose と
Dockerfileのマルチビルド環境の概念が登場してます。
 しかし、初心者には厳しくなつているように感じています。一朝一夕では習得は難しいとおもいます。

 複数のミドルウェアを混在させる環境構築はディストリビューターの経験(alpine,ubuntu,busybox)とパッケージ管理の知識(apk,apt)、サービス管理(OpenRc:service/systemd:sytemctl)が必要です。

また、Redhat系のyum,dnfが使えないケースが多々あり、参考数は少ないのも障壁となります。

さて、登竜門はhello worldからはじめる?
として、先ずはdocker無しでnginx、php、SqlServerをインストールすることをお勧めします。並行してdockerを勉強してはどうでしょうか?

lxcのコンテナの方がディストリビューター(centos,Redhat,almalinux,fedora,debian ,ubuntu,opensuse)とパッケージ管理が(yum,apt,zypper)一般的ですので、サイト情報が豊富ですよ?

私はlxcのステップを踏んでから、Docker on lxc で docker compose を利用しています。

0Like

Your answer might help someone💌