{"id":13343355,"url":"https://github.com/kevinadhiguna/strapi-dockerize","last_synced_at":"2026-03-10T06:33:07.103Z","repository":{"id":45302946,"uuid":"345253233","full_name":"kevinadhiguna/strapi-dockerize","owner":"kevinadhiguna","description":"📦 A Strapi app powered by Docker and docker-compose. Also a guide to configure your Strapi app with hosted database service such as MongoDB Atlas.","archived":false,"fork":false,"pushed_at":"2022-09-07T14:30:09.000Z","size":1945,"stargazers_count":29,"open_issues_count":1,"forks_count":21,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T18:40:44.743Z","etag":null,"topics":["aws","docker","docker-compose","graphql","mongodb","mongodb-atlas","strapi","strapi-docker","strapi-dockerize","yarn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinadhiguna.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-07T03:52:58.000Z","updated_at":"2025-01-23T15:49:00.000Z","dependencies_parsed_at":"2023-01-17T23:00:57.154Z","dependency_job_id":null,"html_url":"https://github.com/kevinadhiguna/strapi-dockerize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevinadhiguna/strapi-dockerize","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinadhiguna%2Fstrapi-dockerize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinadhiguna%2Fstrapi-dockerize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinadhiguna%2Fstrapi-dockerize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinadhiguna%2Fstrapi-dockerize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinadhiguna","download_url":"https://codeload.github.com/kevinadhiguna/strapi-dockerize/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinadhiguna%2Fstrapi-dockerize/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","docker","docker-compose","graphql","mongodb","mongodb-atlas","strapi","strapi-docker","strapi-dockerize","yarn"],"created_at":"2024-07-29T19:31:18.131Z","updated_at":"2026-03-10T06:33:07.083Z","avatar_url":"https://github.com/kevinadhiguna.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/kevinadhiguna/strapi-dockerize\"\u003e\n    \u003cimg src=\"https://s3.gifyu.com/images/4fgfcghvgyvtyy66564e.png\" alt=\"Strapi Dockerize\" border=\"0\" width=\"350px\" height=\"300px\" /\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eStrapi Dockerize\u003c/h3\u003e\n  \n  [![Build With Yarn](https://img.shields.io/badge/build%20with-yarn-028fe4.svg?style=flat-square)](https://yarnpkg.com/)\n  [![Build With Docker](https://img.shields.io/badge/build%20with-docker-2496ED.svg?style=flat-square)](https://www.docker.com/)\u003cbr/\u003e\n\n  \u003cp align=\"center\"\u003e\n    A Strapi app powered by Docker and docker-compose.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/kevinadhiguna/strapi-dockerize/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/kevinadhiguna/strapi-dockerize/issues\"\u003eRequest a Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Strapi\" src=\"https://img.shields.io/badge/strapi-%232E7EEA.svg?style=for-the-badge\u0026logo=strapi\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"JavaScript\" src=\"https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E\" /\u003e\n  \u003cimg alt=\"Docker\" src=\"https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"AWS\" src=\"https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge\u0026logo=amazon-aws\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"MongoDB Atlas\" src =\"https://img.shields.io/badge/MongoDB_Atlas-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white\"/\u003e\n  \u003cimg alt=\"GitLab CI\" src=\"https://img.shields.io/badge/GitLab_CI-%23181717.svg?style=for-the-badge\u0026logo=gitlab\u0026logoColor=white\"/\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n## ⚠️ Warning\n\nThis project works only on NodeJS v10.16.0 - v14.x.x. Please have a look at this [issue](https://github.com/kevinadhiguna/strapi-dockerize/issues/4) for more.\n\n\u003cbr /\u003e\n\n## 📚 Table of Contents\n\n1. [🌈 About this project](#-about-this-project)\n2. [✨ What collection-type is inside this project?](#-what-collection-type-is-featured-in-this-project)\n3. [📖 How to run](#-how-to-run)\n   - 🧶 using `yarn`\n   - 🐋 using `docker-compose`\n4. [⚙️ Set up application configuration](#%EF%B8%8F-set-up-application-configuration-env-)\n5. [📝 Executing commands inside the Docker container](#-executing-commands-inside-the-docker-container)\n6. [🖼️ Pull this project's docker image from DockerHub](#%EF%B8%8F-pull-this-projects-docker-image-from-dockerhub)\n7. [🔒 Reset admin password in Strapi client (Strapi with UI)](#-reset-admin-password-in-strapi-client-strapi-with-ui)\n8. [💻 Related repositories](#-related-repositories)\n9. [📰 Related articles](#-related-articles)\n\n\u003cbr/\u003e\n\n## 🌈 About this project\n\nThis is a Strapi app powered by Docker and docker-compose. Nevertheless, this app provides an example and a guide to configure your Strapi app with hosted database service such as MongoDB Atlas.\n\n\u003cbr/\u003e\n\n## ✨ What collection-type is featured in this project?\n\nYou can think collection-type as an API generated by Strapi. In this project, `Juventus` collection-type, is provided as a template. This is how it looks :\u003cbr/\u003e\n\n\u003cimg src=\"https://s6.gifyu.com/images/juventus.png\" alt=\"Collection-Type\" border=\"0\" /\u003e\u003cbr/\u003e\n\nThe `position` has enumeration data type but this is how the auto-generated GraphQL schema (only for the `Juventus` content-type data) looks :\n```graphql\nenum ENUM_JUVENTUS_POSITION {\n  GK\n  DF\n  MF\n  FW\n}\n\ntype Juventus {\n  id: ID!\n  _id: ID!\n  createdAt: DateTime!\n  updatedAt: DateTime!\n  name: String\n  number: Int\n  age: Int\n  country: String\n  appearences: Int\n  goals: Int\n  minutesPlayed: Int\n  position: ENUM_JUVENTUS_POSITION\n  profpic: UploadFile\n  published_at: DateTime\n}\n```\n\nNow, it is clear that available options for `position` are : `GK`. `DF`, `MF`, `FW`.\n\nIn addition, there is another content-type named `facility`: \u003cbr /\u003e\n\n\u003cimg src=\"https://s6.gifyu.com/images/fsdfsdfsdjfk.png\" alt=\"facility\" border=\"0\" /\u003e\n\nYou can create a database such as in MongoDB Atlas or in your local machine (laptop) to use this Strapi project. In addition, if you want to integrate this Strapi app with client side (front-end web), you can use these repos :\n1. \u003ca href=\"https://github.com/kevinadhiguna/antdpro-strapi-auth\" target=\"_blank\"\u003eAnt Design Pro Strapi with Apollo GraphQL client\u003c/a\u003e\n2. \u003ca href=\"https://github.com/kevinadhiguna/antdpro-strapi-urql\" target=\"_blank\"\u003eAnt Design Pro Strapi with URQL GraphQL client\u003c/a\u003e\n\n\u003cbr/\u003e\n\n## 📖 How to Run\n\n1. Clone this repository :\n```bash\ngit clone https://github.com/kevinadhiguna/strapi-dockerize\n```\n\n2. Change directory\n```bash\ncd strapi-dockerize\n```\n\n3. Install dependencies :\n```bash\nyarn\n```\n\n4. Create a `.env` file which stores application configuation, based on the `.env.example` file:\n```bash\ncp .env.example .env\n```\n\n5. Fill in the `.env` file with the application configuration. This step migth be quite long, please refer the [set up application configuration](#%EF%B8%8F-set-up-application-configuration-env-) section.\n\n6. Run your Strapi app : \u003cbr/\u003e\n\nusing `yarn`\n```bash\nyarn develop\n```\n\nusing `docker-compose`\n```bash\ndoocker-compose up\n```\n\n\u003cbr/\u003e\n\n### ⚠️ Prerequisites of using `docker` and `docker-compose`\nPlease make sure you have Docker and docker-compose installed in your machine. Please refer here to install them :\n1. [Docker](https://docs.docker.com/engine/install/) installation\n2. [Docker compose](https://docs.docker.com/compose/install/) installation\n\n\u003cbr/\u003e\n\n\u003chr /\u003e\n\n### ⚙️ Set up application configuration (`.env`) :\n\n#### *DATABASE_HOST*\n\nIf you run your database locally or in your computer, fill :\u003cbr /\u003e\n```bash\nDATABASE_HOST=127.0.0.1\n```\n\nOtherwise, please enter your database host URL, such as :\u003cbr /\u003e\n```bash\nDATABASE_HOST=cluster3.abc65.mongodb.net\n```\n\nThe above is an example if you host your database in [MongoDB Atlas](https://www.mongodb.com/cloud/atlas).\n\n\u003cbr/\u003e\n\n#### *DATABASE_SRV*\n\nValue of Database SRV in MongoDB. It could be either `true` or `false` as it is boolean. For example :\u003cbr /\u003e\n```bash\nDATABASE_SRV=true\n```\n\n\u003eSRV is a way to specify a single hostname that resolves to multiple host names. When using SRV, the driver conducts an SRV lookup to get the actual names of all of the hosts. Also, when using SRV, the driver does lookups for TXT records, which can contain specific URI options to configure the driver.\n\nPlease have a look at [MongoDB community forum](https://www.google.com/url?sa=t\u0026rct=j\u0026q=\u0026esrc=s\u0026source=web\u0026cd=\u0026cad=rja\u0026uact=8\u0026ved=2ahUKEwjl6OTUjOXwAhWY4nMBHa4RBgkQFjACegQIBhAD\u0026url=https%3A%2F%2Fdeveloper.mongodb.com%2Fcommunity%2Fforums%2Ft%2Fmongodb-or-mongodb-srv%2F1654\u0026usg=AOvVaw1nNUDlH5GVNZDFSL0jl2kj) for more.\n\n\u003cbr/\u003e\n\n#### *DATABASE_PORT*\n\nPort that your Strapi app interacts with database management system (DBMS). For example :\u003cbr /\u003e\n```bash\nDATABASE_PORT=27017\n```\n\n\u003cbr/\u003e\n\n#### *DATABASE_NAME*\n\nThe database name in database management system (e.g. : MongoDB, MySQL, PostgreSQL). For instance :\u003cbr /\u003e\n```bash\nDATABASE_NAME=myStrapiApp\n```\n\n\u003cbr/\u003e\n\n#### *DATABASE_USERNAME*\n\nThe username of your database that you use in your Strapi app. For instance :\u003cbr /\u003e\n```bash\nDATABASE_USERNAME=admin\n```\n\n\u003cbr/\u003e\n\n#### *DATABASE_PASSWORD*\n\nThe password of your database that you use in your Strapi app. For instance :\u003cbr /\u003e\n```bash\nDATABASE_PASSWORD=admin123\n```\n\n\u003cbr/\u003e\n\n#### *DATABASE_SSL*\n\nUsually, you set this field if your database in your Strapi app is hosted, for example : \n- [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) for MongoDB\n- [Free MySQL Hosting](https://www.freemysqlhosting.net/) for MySQL\n- [ElephantSQL](https://www.elephantsql.com/) for PostgreSQL\n\nThen in order to establish a secure connection, you want enable SSL. If so, set :\u003cbr /\u003e\n```bash\nDATABASE_SSL=true\n```\n\nThis fields is boolean. Hence, you can either set it to `true` or `false` only.\n\n\u003cbr/\u003e\n\n#### *CORS_ORIGIN*\n\nPlease add URL/IP address of :\n- App's client-side (a Web App and/or a Mobile app)\n- Strapi Admin Panel\n\nCORS only cares three aspects, namely :\n- Scheme (e.g. : `https`, `http`, etc.)\n- URL/IP address\n- Port\n\nSo, if your app's client-side and Strapi admin panel run on http://192.168.1.4:3000 and http://192.168.1.4:1337 respectively, you should write : \n```bash\nCORS_ORIGIN=http://192.168.1.4:1337,http://192.168.1.4:3000\n```\n\n\u003cbr/\u003e\n\n#### *AWS_ACCESS_KEY_ID*\n\nFor example :\u003cbr /\u003e\n```bash\nAWS_ACCESS_KEY_ID=DGHY4REH7IUVDF908UNV\n```\n\n\u003cbr/\u003e\n\n#### AWS_SECRET_ACCESS_KEY\n\nFor example :\u003cbr /\u003e\n```bash\nAWS_SECRET_ACCESS_KEY=3bFhYF76zFG+5F78436KJ8bH3x19TALuIxytfNc/\n```\n\n\u003cbr/\u003e\n\n#### *AWS_REGION*\n\nFor example :\n```bash\nAWS_REGION=eu-west-2\n```\n\nPlease see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) for details. \n\n\u003cbr/\u003e\n\n#### *EMAIL_DEFAULT_FROM*\n\nAn email address your Strapi app will send an email from. For example :\u003cbr /\u003e\n```bash\nEMAIL_DEFAULT_DEFAULT_FROM=hello@example.com\n```\n\n\u003cbr/\u003e\n\n#### *EMAIL_DEFAULT_REPLY_TO*\n\nAn email address your Strapi app will be receiving emails. For example :\u003cbr /\u003e\n```bash\nEMAIL_DEFAULT_REPLY_TO=reply@example.com\n```\n\n\u003cbr/\u003e\n\n#### *AWS_BUCKET*\n\nFor example :\n```bash\nAWS_BUCKET=mybucket.mydomain.com\n```\n\n\u003cbr/\u003e\n\n#### *AWS_S3_STORAGE_CLASSES*\n\nFor example :\n```bash\nAWS_S3_STORAGE_CLASSES=S3 Standard\n```\n\nYou can read more about [AWS Storage Classes](https://aws.amazon.com/s3/storage-classes/).\n\n\u003cbr/\u003e\n\n#### *CLOUD_NAME*\n\nThis is the cloud name of your Coudinary account. \u003cbr /\u003e\nThis looks like :\n```bash\nCLOUD_NAME=ehsjuvnxpz\n```\n\nPlease leave it blank if your Strapi app foes not use Cloudinary. \n\n\u003cbr/\u003e\n\n#### *API_KEY*\n\nThis is API key from Cloudinary. \u003cbr /\u003e\nFor instance :\n```bash\nAPI_KEY=253857109845223\n```\n\nYou can leave it blank if you do not use Cloudinary.\n\n\u003cbr/\u003e\n\n#### *API_SECRET*\n\nThis is API secret from Cloudinary. \u003cbr /\u003e \nFor example :\n```bash\nAPI_SECRET=DBVrte27_GtyrIUxFGydk_R8tRX\n```\n\nIf you do not use Cloudinary, you can leave it blank.\n\n\u003cbr/\u003e\n\n#### *SENTRY_DSN*\n\nThis is a Sentry DSN that you obtain from Sentry if you use it. Otherwise, leave it blank. \u003cbr /\u003e\nFor example :\n```bash\nSENTRY_DSN=https://vx547s32f45d7v91q865hgh5421z8932@f584318.ingest.sentry.io/6712395\n```\n\n\u003cbr/\u003e\n\n#### *HOST*\n\nSimply open terminal and type `ip addr show` (MacOS / Linux-based OS) or `ipconfig` (Windows). You should see like `192.168.1.4` which is the value of this variable.\u003cbr\u003e\nExample : \n```bash\nHOST=http://192.168.1.4\n```\n\n\u003cbr/\u003e\n\n#### *PORT*\n\nSpecify the port that you want to run.\u003cbr\u003e\nFor example : \n```bash\nPORT=1337\n```\n\n\u003cbr/\u003e\n\n#### *ADMIN_JWT_SECRET*\n\nGenerate a secure token is required for superadmin authentication.\u003cbr\u003e\nIn terminal, please type :\n```bash\nopenssl rand 64 | base64 # (linux/macOS users)\n# or\nnode -e \"console.log(require('crypto').randomBytes(64).toString('base64'))\" # (all users)\n```\n\nThen you should see something like this in your terminal :\n```\nErhxCk10YqNCImwodl5Ml/Maqnw46oTyLjr+9Na4bjmJSLVWnCS90BJRAAkLsspj98caylAJgikBO9ZS0jEiOQ==\n```\n\nPlease copy the token and assign it like this :\n\n```bash\nADMIN_JWT_SECRET=ErhxCk10YqNCImwodl5Ml/Maqnw46oTyLjr+9Na4bjmJSLVWnCS90BJRAAkLsspj98caylAJgikBO9ZS0jEiOQ==\n```\n\n\u003cbr/\u003e\n\n#### *NODE_ENV*\n\nThis refers to the environment that your application runs. It could be `development`, `staging`, `production`, or something else.\u003cbr/\u003e\nFor example :\n```bash\nNODE_ENV=development\n```\n\n\u003c!--\n\u003chr /\u003e\n\n### 🐋 using `docker-compose` -\u003e configure `docker-compose.yml` :\n\n\u003cbr /\u003e\n\n\u003cb\u003ePrerequisites :\u003c/b\u003e\u003cbr\u003e\nPlease make sure you have Docker and Docker Compose installed in your machine. Please refer here to install them :\n1. [Docker](https://docs.docker.com/engine/install/) installation\n2. [Docker compose](https://docs.docker.com/compose/install/) installation\n\u003cbr\u003e\n\n1. Copy `docker-compose.example.yml` file then paste the content into a newly created `docker-compose.yml` file.\n2. Assign values of environment variables in `docker-compose.yml` file.\n\n#### NODE_ENV\nHere we specify running environment whether it is `production`, `staging`, `development`, etc.\nUsing `staging` and `development` will turn on AWS S3 storage.\n\nExample:\n\n```bash\nNODE_ENV: development\n```\n\n#### DATABASE_CLIENT\nName of the database client. Set to `mongo` if you use MongoDB.\u003cbr\u003e\n```bash\nDATABASE_CLIENT: mongo\n```\n\n#### DATABASE_HOST\nHost of database such as `127.0.0.1` (localhost) or a URL like `cluster3.abc65.mongodb.net` if you useMongoDB Atlas. \u003cbr /\u003e\n\nIf you run your database locally or in your computer, fill :\u003cbr /\u003e\n```bash\nDATABASE_HOST: 127.0.01\n```\n\nOtherwise, please enter your database host URL, such as :\u003cbr /\u003e\n```bash\nDATABASE_HOST: cluster3.abc65.mongodb.net\n```\n\n#### DATABASE_SRV\nPlease note that it must be string or null. Possible values : `true` or `false`. For instance :\u003cbr\u003e\n```bash\nDATABASE_SRV: true\n```\n\n#### DATABASE_PORT\nDetermine the port that will be used for database management system that serves this app. Below is an example :\u003cbr\u003e\n```bash\nDATABASE_PORT: 27017\n```\n      \n#### DATABASE_NAME\nPlease name the database name. Let's say :\u003cbr\u003e\n```bash\nDATABASE_NAME: myStrapiApp\n```\n\n#### DATABASE_USERNAME\nUsername of database, such as :\u003cbr\u003e\n```bash\nDATABASE_USERNAME: admin\n```\n\n#### DATABASE_PASSWORD  \nGenerate a strong password for database, namely : \u003cbr\u003e\n```bash\nDATABASE_PASSWORD: admin123\n```\n      \n#### DATABASE_SSL\nEnable Secure Socket Layer (SSL) ? If so, please fill `'true'` otherwise `'false'`. Please note that this MUST be string or null. As an example :\u003cbr\u003e\n```bash\nDATABASE_SSL: 'true'\n```\n      \n#### CORS_ORIGIN\nPut allowed Cross-Origin Resource Sharing (CORS) origin here. It is possibly only one or even more. if your app's client-side and Strapi admin panel run on http://192.168.1.4:3000 and http://192.168.1.4:1337 respectively, you should write : \n```bash\nCORS_ORIGIN: http://192.168.1.4:3000,http://192.168.1.4:1337\n```\n\nRead [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) for more.\n      \n#### ADMIN_JWT_SECRET\nGenerate a secure token for superadmin authentication. Below is an example :\u003cbr\u003e\n```bash\nADMIN_JWT_SECRET: ErhxCk10YqNCImwodl5Ml/Maqnw46oTyLjr+9Na4bjmJSLVWnCS90BJRAAkLsspj98caylAJgikBO9ZS0jEiOQ==\n```\n\nPlease refer to [How to generate Admin JWT Secret](#admin_jwt_secret) above for more.\n\n#### ports\nThese ports are not meant for database management system but for the app. There are a couple of ports which are host port and container port. Host port is a port exposed to public. Meanwhile, container port is an internal port that will be accessed through the machine you use. In particular :\u003cbr\u003e\n```bash\nports:\n    - '1337:1337'\n```\n\n#### AWS environment variables\n\nOnly if you use Amazon Web Service (AWS) :\n\n* `AWS_REGION`\n```bash\nAWS_REGION: eu-west-3\n```\n\n* `AWS_ACCESS_KEY_ID`\n```bash\nAWS_ACCESS_KEY_ID: DGHY4REH7IUVDF908UNV\n```\n\n* `AWS_SECRET_ACCESS_KEY`\n```bash\nAWS_SECRET_ACCESS_KEY: 3bFhYF76zFG+5F78436KJ8bH3x19TALuIxytfNc/\n```\n\n* `AWS_BUCKET`\n```bash\nAWS_BUCKET: mybucket.mydomain.com\n```\n\n\u003cbr /\u003e\n\n2. Run your App. \u003cbr/\u003e\nIf you run it for the first time or make changes, please run :\n```bash\ndocker-compose up --build\n```\n\nIf you do not make changes but want to run the app again :\n```bash\ndocker-compose up\n```\n--\u003e\n\n\u003cbr/\u003e\n\u003chr/\u003e\n\n## 📝 Executing commands inside the Docker container\n\nYou can run:\n```bash\ndocker-compose exec \u003ccontainer_ID\u003e /bin/sh\n```\n\nor\n\n```bash\ndocker-compose exec \u003ccontainer_name\u003e /bin/sh\n```\n\n\u003c!--\n### How to stop the app :\nPress `ctrl + c` to stop it.\n\n## Build Docker Image \u0026 Push to AWS ECR\n\nIn GitLab project, after creating `.gitlab-ci.yml`, set build variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` from IAM user `ecr`.\n\n```bash\n# To push Docker image to 'staging' tag\ngit push origin master:staging\n\n# To push Docker image to 'production' tag\ngit push origin master:production\n```\n--\u003e\n\u003c!--\n\u003cbr /\u003e\n\u003chr /\u003e\n\n## 🖼️ Pull this project's docker image from DockerHub\n\nYou can also use this project's docker imade from DockerHub:\n\n```bash\ndocker pull kevinadhiguna/strapi-dockerize:latest\n```\n\nDockerHub repo : https://hub.docker.com/repository/docker/kevinadhiguna/strapi-dockerize\n--\u003e\n\u003cbr /\u003e\n\u003chr /\u003e\n\n## 🔒 Reset Admin password in Strapi client (Strapi with UI)\n\nYou can reset Strapi admin password by running this command:\n\n### using Yarn\n```bash\nyarn strapi admin:reset-user-password --email=\u003cadmin_email_address\u003e --password=\u003cnew_admin_password\u003e\n```\n\n### using NPM\n```bash\nnpm run strapi admin:reset-user-password --email=\u003cadmin_email_address\u003e --password=\u003cnew_admin_password\u003e\n```\n\nHowever if you have installed Strapi globally (not recommended), you can run this command:\n\n```bash\nstrapi admin:reset-user-password --email=\u003cadmin_email_address\u003e --password=\u003cnew_admin_password\u003e\n```\n\n\u003cbr/\u003e\n\nExample case: \u003cbr/\u003e\nYou have `kai@doe.com` registered as the admin email for login credential in Strapi client but you forgot the password. If you use Yarn and want to reset the password to `Kaidoe12345`, you can do so by running :\n\n```bash\nyarn strapi admin:reset-user-password --email=kai@doe.com --password=Kaidoe12345\n```\n\n\u003cbr /\u003e\n\u003chr /\u003e\n\n## 💻 Related Repositories\n\nPlease feel free to have a look at :\n- [Strapi MySQL - docker-compose](https://github.com/kevinadhiguna/strapi-mysql-docker)\n- [Strapi MariaDB - docker-compose](https://github.com/kevinadhiguna/strapi-mariadb-docker)\n- [Strapi MongoDB - docker-compose](https://github.com/kevinadhiguna/strapi-mongo-docker)\n- [Strapi PostgreSQL - docker-compose](https://github.com/kevinadhiguna/strapi-postgresql-docker)\n\n\u003cbr/\u003e\n\u003chr /\u003e\n\n## 📰 Related Articles\n\n- [How to setup Amazon S3 upload provider in your Strapi app](https://dev.to/kevinadhiguna/how-to-setup-amazon-s3-upload-provider-in-your-strapi-app-1opc)\n- [How to setup AWS SES email provider in your Strapi app](https://dev.to/kevinadhiguna/how-to-setup-aws-ses-email-provider-in-your-strapi-app-2lf2)\n- [What is CORS ? How to configure CORS in Strapi ?](https://dev.to/kevinadhiguna/what-is-cors-how-to-configure-cors-in-strapi-461b)\n- [How to disable telemetry in Strapi](https://dev.to/kevinadhiguna/disable-telemetry-in-strapi-2egf)\n\nAlso, this article might be helpful to use this project : https://about.lovia.life/creating-strapi-app-image-with-docker/.\n\u003cbr /\u003e\n\nShould you have any questions or discussion, please feel free to ask [here](https://github.com/kevinadhiguna/strapi-dockerize/issues). Thanks!\n\n\u003cbr /\u003e\n\n[![Visits Badge](https://badges.pufler.dev/visits/kevinadhiguna/strapi-dockerize)](https://github.com/kevinadhiguna)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinadhiguna%2Fstrapi-dockerize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinadhiguna%2Fstrapi-dockerize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinadhiguna%2Fstrapi-dockerize/lists"}