React + Go + MongoDBの環境をDocker Composeで作成した

現在、勉強がてら個人開発をしていて、せっかくの個人開発なので、今までさわったことがないReact, Go, MongoDBでwebアプリを作ります。 その最初の段階として、Docker Composeを使って環境構築を進めます。 Reactの環境構築 今回の開発では、プロジェクト配下をこんな感じにしています。 プロジェクト ├── backend ├── frontend Reactはfrontend配下に構築します。 Dockerfileの作成 DockerfileにDocker上で起動させるコンテナの構成情報を書きます。 frontend配下に以下内容で作成します。 FROM node:13.12.0-alpine3.10 WORKDIR /usr/src/app 1行目にはコンテナのDockerイメージ、2行目にはコンテナ内の作業ディレクトリを記載しています。 alpineはAlpine Linuxのことで、必要最低限の構成がされているおかげで、Dockerイメージの軽量化を図ることができます。 docker-compose.ymlの作成 docker-compose.ymlで複数のコンテナをまとめて起動することができます。拡張子は「.yml」「.yaml」どちらでも動きます。 どっちかに統一してくれればいいのに。 プロジェクト配下に以下内容で作成します。 version: '3' services: node: build: context: ./frontend dockerfile: Dockerfile volumes: - ./frontend:/usr/src/app command: sh -c "yarn start" ports: - "3000:3000" volumesではコンテナ内のusr/src/appをfrontendに永続化させます。 portsでは外部の3000ポートとコンテナ内の3000ポートをつなげています。ローカル環境ではlocalhost:3000でアクセスができるようになります。 Dockerイメージのビルド docker-compose.ymlのある階層で以下コマンドを叩きます。 docker-compose build Building node Step 1/2 : FROM node:13.12.0-alpine3.10 ---> b529a862f234 Step 2/2 : WORKDIR /usr/src/app ---> Using cache ---> b753b92fbf97 Successfully built b753b92fbf97 Successfully tagged プロジェクト名_node:latest 上記のような表示がされ、ビルドすることができます。...

April 11, 2020 · 3 min · 522 words · Yu