どのようにDockerコンテナでDecker
8302 ワード
このpost 当初はRAZINJ Dev
strapi 4はリリースされ、素晴らしいですが、Dockerのイメージはまだリリースされていません.そして、彼らが私たちのためにそれをリリースするとき、それは知られていません、しかし、これはDockerでstrapiを走らせることから私たちを止めません.
PS :ブログの最後にソースコードを見つけることができます.
Requirements Create the Strapi Project Add Docker Support Docker Support Caveat Run and Verify Project Content Types Development Conclusion NodeJs Docker Docker Compose
Strapiプロジェクトを作成する必要があります
コマンドは以下のファイル構造を持つプロジェクトを生成します.
今、私たちは
このステップでは
これによって生成されるDockerイメージをさらに最適化するには
ファイルやディレクトリを無視することは、
プロジェクトのルートディレクトリのDocker無視ファイルを作成し、次のコンテンツをコピーします.
strapiを使用しているときに警告があります
これを作る
だから、プロジェクトをラップする必要があります
さて、Dockerコンテナを作成し、CMSを楽しむことができます.
ビルドと実行:
終了したら、ブラウザに行って入ってください.
しかし、このビルドはビルドビルドですので、型を作成できません.開発環境でそれらを作成する必要があります.
この節では、どのようにコンテンツタイプを作成し、ビルド済みの環境を更新するかを確認します.
最初にどのように動作するかを始めましょう.まず、UIから作成したコンテンツタイプがstrapiプロジェクトの内部にコード化されています.
今では、開発環境を起動し、コンテンツタイプを作成し、生産ビルドを更新しましょう.
まず、開発用のローカルデータベースを起動する必要がありますが、その前にデータベース用の拡張ファイルを作成してデータベースポートを公開します.
右側のすぐ隣に
今すぐあなたのブラウザのヘッドを使用して管理パネルに
コンテンツタイプを作成するとすぐに、プロジェクトのディレクトリ内のコードが変更されます(いくつかのファイルが作成されます).
我々はほとんど完了しました、我々は生産環境を更新しなければなりません(ローカルマシンのものではありません)、ちょうどこれがちょうど我々の前のコマンドを起動させるために:
このように、我々は我々が容易に我々のカスタムStrapi 4 Dockerイメージと容器を造ったと言うことができます.
テンプレートとしてのブログソースコードGithub .
いつものように、あなたは何かを学びました.
この便利な発見?お友達とそれを共有すること自由に感じなさい.
ニュースレターに加わってくださいhere 新しい投稿と更新を通知します.
ポストのように?私たちを買うcoffee ❤️.
strapi 4はリリースされ、素晴らしいですが、Dockerのイメージはまだリリースされていません.そして、彼らが私たちのためにそれをリリースするとき、それは知られていません、しかし、これはDockerでstrapiを走らせることから私たちを止めません.
PS :ブログの最後にソースコードを見つけることができます.
目次
要件
Strapiプロジェクトを作成する
Strapiプロジェクトを作成する必要があります
app
(なぜこの名前を後で説明しますか)npx
:npx create-strapi-app@latest app
コマンドは以下のファイル構造を持つプロジェクトを生成します.
Dockerサポートの追加
今、私たちは
Dockerfile
.このステップでは
Dockerfile
ファイルをstrapiプロジェクトのルートで作成する必要があります.FROM strapi/base
# Let WatchTower know to ignore this container for checking
LABEL com.centurylinklabs.watchtower.enable="false"
WORKDIR /app
COPY ./package*.json ./
RUN npm ci
COPY . .
ENV NODE_ENV production
RUN npm run build
EXPOSE 1337
CMD ["npm", "start"]
The Dockerfile
ストアドの依存関係をインストールし、プロジェクトを生産モードでビルドします1337
.これによって生成されるDockerイメージをさらに最適化するには
Dockerfile
コンテナ内で使用されないファイルやディレクトリをコピーしないようにします.ファイルやディレクトリを無視することは、
.dockerignore
自然に似ている.gitignore
).プロジェクトのルートディレクトリのDocker無視ファイルを作成し、次のコンテンツをコピーします.
node_modules
license.txt
exports
*.cache
build
.strapi-updater.json
これまでのところ、我々は我々のプロジェクトにDockerのサポートを追加しましたが、まだ行われていません.Dockerサポート
strapiを使用しているときに警告があります
webpack
管理するビューをビルドするにはnpm run build
).これを作る
Dockerfile
効果的に、我々はこのビルド依存を供給する必要がありますpackage.json
ファイルをインストールするwebpack
開発依存:npm i -D webpack
これで、今、我々はAを作成する必要がありますdocker-compose.yml
ファイルは、strapiプロジェクトのルートディレクトリの外にある必要があります.だから、プロジェクトをラップする必要があります
docker-compose.yml
私がプロジェクトを呼んだ理由app
これを行いましょう:# Step out of the Strapi project named 'app'
cd ..
# Create a new directory
mkdir strapi-v4
# Move the Strapi project into the newly created directory
mv app strapi-v4
プロジェクトをディレクトリにラップした後、ディレクトリにステップし、docker-compose.yml
ファイル# Step into the wrapper directory
cd strapi-v4
# Create an empty file
touch docker-compose.yml
さて、次のコンテンツをファイルに貼り付けます.version: "3"
services:
app:
build:
context: ./app
container_name: strapi_v4_app
restart: unless-stopped
environment:
NODE_ENV: production
DATABASE_CLIENT: postgres
DATABASE_HOST: db
DATABASE_PORT: 5432
DATABASE_NAME: app
DATABASE_USERNAME: db_username
DATABASE_PASSWORD: db_password
volumes:
- ./app:/srv/app
ports:
- 127.0.0.1:8000:1337
depends_on:
- db
db:
image: postgres:13
container_name: strapi_v4_db
restart: unless-stopped
environment:
POSTGRES_DB: app
POSTGRES_USER: db_username
POSTGRES_PASSWORD: db_password
volumes:
- ./data:/var/lib/postgresql/data
あなたのためにファイルを説明させてください、Docker構成ファイルは2つのサービスを含みます;作成したstrapiプロジェクトapp
(これは何でも名付けられます)、プロジェクトが接続するデータベースサービスです.プロジェクトの実行と確認
さて、Dockerコンテナを作成し、CMSを楽しむことができます.
ビルドと実行:
docker-compose up -d --build
両方のサービスが実行中であることを確認します.docker ps -a
予想される出力は以下のようになります.終了したら、ブラウザに行って入ってください.
http://localhost:8000/admin
管理者プロファイルを作成するには、基本的に、これはそれです.しかし、このビルドはビルドビルドですので、型を作成できません.開発環境でそれらを作成する必要があります.
コンテンツタイプ開発
この節では、どのようにコンテンツタイプを作成し、ビルド済みの環境を更新するかを確認します.
最初にどのように動作するかを始めましょう.まず、UIから作成したコンテンツタイプがstrapiプロジェクトの内部にコード化されています.
今では、開発環境を起動し、コンテンツタイプを作成し、生産ビルドを更新しましょう.
まず、開発用のローカルデータベースを起動する必要がありますが、その前にデータベース用の拡張ファイルを作成してデータベースポートを公開します.
右側のすぐ隣に
docker-compose.yml
新しいファイルを作成しますtouch docker-compose.dev.yml
に以下の内容をペーストします.version: "3"
services:
db:
ports:
- 5432:5432
では、両方のファイルを指定するだけでデータベースを起動します.# In the strapi-v4 directory
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d db
データベースが作成されたことを確認し、指定したポートを公開します.docker ps -a
第二に、プロジェクトのルートディレクトリ内からstrapiプロジェクトを起動する必要がありますnpm
:# Get into the Strapi project directory
cd app
# Start development server
npm run develop
このように、プロジェクトはデータベースに接続されますdatabase.js
ファイル.今すぐあなたのブラウザのヘッドを使用して管理パネルに
http://localhost:1337/admin
コンテンツタイプの作成を開始します.コンテンツタイプを作成するとすぐに、プロジェクトのディレクトリ内のコードが変更されます(いくつかのファイルが作成されます).
我々はほとんど完了しました、我々は生産環境を更新しなければなりません(ローカルマシンのものではありません)、ちょうどこれがちょうど我々の前のコマンドを起動させるために:
docker-compose up -d --build
これは、生産環境を使用してプロジェクトを再構築し、CMSを使用して起動できます.結論
このように、我々は我々が容易に我々のカスタムStrapi 4 Dockerイメージと容器を造ったと言うことができます.
テンプレートとしてのブログソースコードGithub .
いつものように、あなたは何かを学びました.
この便利な発見?お友達とそれを共有すること自由に感じなさい.
ニュースレターに加わってくださいhere 新しい投稿と更新を通知します.
ポストのように?私たちを買うcoffee ❤️.
Reference
この問題について(どのようにDockerコンテナでDecker), 我々は、より多くの情報をここで見つけました https://dev.to/razinj/how-to-run-strapi-4-in-a-docker-container-using-docker-compose-4ol7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol