hillct commited on
Commit
c116338
·
unverified ·
1 Parent(s): a69ce87

Added Docker Deployment documentation to CONTRIBUTING.md

Browse files
Files changed (1) hide show
  1. CONTRIBUTING.md +86 -6
CONTRIBUTING.md CHANGED
@@ -8,6 +8,7 @@ First off, thank you for considering contributing to Bolt.new! This fork aims to
8
  - [Pull Request Guidelines](#pull-request-guidelines)
9
  - [Coding Standards](#coding-standards)
10
  - [Development Setup](#development-setup)
 
11
  - [Project Structure](#project-structure)
12
 
13
  ## Code of Conduct
@@ -106,16 +107,95 @@ pnpm run deploy
106
 
107
  Make sure you have the necessary permissions and Wrangler is correctly configured for your Cloudflare account.
108
 
109
- ## Docker Dev
110
 
111
- To build docker image
112
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  ```
114
- docker build -t bolt-ai .
 
 
 
 
 
 
 
 
 
 
115
  ```
116
 
117
- To run bolt dev in docker(Add ANTHROPIC_API_KEY=XXX before running)
118
 
 
 
 
 
 
 
 
 
119
  ```
120
- docker run -p 5173:5173 --env-file .env.local bolt-ai
121
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  - [Pull Request Guidelines](#pull-request-guidelines)
9
  - [Coding Standards](#coding-standards)
10
  - [Development Setup](#development-setup)
11
+ - [Deploymnt with Docker](#docker-deployment-documentation)
12
  - [Project Structure](#project-structure)
13
 
14
  ## Code of Conduct
 
107
 
108
  Make sure you have the necessary permissions and Wrangler is correctly configured for your Cloudflare account.
109
 
110
+ # Docker Deployment Documentation
111
 
112
+ This guide outlines various methods for building and deploying the application using Docker.
113
 
114
+ ## Build Methods
115
+
116
+ ### 1. Using Helper Scripts
117
+
118
+ NPM scripts are provided for convenient building:
119
+
120
+ ```bash
121
+ # Development build
122
+ npm run dockerbuild
123
+
124
+ # Production build
125
+ npm run dockerbuild:prod
126
  ```
127
+
128
+ ### 2. Direct Docker Build Commands
129
+
130
+ You can use Docker's target feature to specify the build environment:
131
+
132
+ ```bash
133
+ # Development build
134
+ docker build . --target bolt-ai-development
135
+
136
+ # Production build
137
+ docker build . --target bolt-ai-production
138
  ```
139
 
140
+ ### 3. Docker Compose with Profiles
141
 
142
+ Use Docker Compose profiles to manage different environments:
143
+
144
+ ```bash
145
+ # Development environment
146
+ docker-compose --profile development up
147
+
148
+ # Production environment
149
+ docker-compose --profile production up
150
  ```
151
+
152
+ ## Running the Application
153
+
154
+ After building using any of the methods above, run the container with:
155
+
156
+ ```bash
157
+ # Development
158
+ docker run -p 5173:5173 --env-file .env.local bolt-ai:development
159
+
160
+ # Production
161
+ docker run -p 5173:5173 --env-file .env.local bolt-ai:production
162
+ ```
163
+
164
+ ## Deployment with Coolify
165
+
166
+ [Coolify](https://github.com/coollabsio/coolify) provides a straightforward deployment process:
167
+
168
+ 1. Import your Git repository as a new project
169
+ 2. Select your target environment (development/production)
170
+ 3. Choose "Docker Compose" as the Build Pack
171
+ 4. Configure deployment domains
172
+ 5. Set the custom start command:
173
+ ```bash
174
+ docker compose --profile production up
175
+ ```
176
+ 6. Configure environment variables
177
+ - Add necessary AI API keys
178
+ - Adjust other environment variables as needed
179
+ 7. Deploy the application
180
+
181
+ ## VS Code Integration
182
+
183
+ The `docker-compose.yaml` configuration is compatible with VS Code dev containers:
184
+
185
+ 1. Open the command palette in VS Code
186
+ 2. Select the dev container configuration
187
+ 3. Choose the "development" profile from the context menu
188
+
189
+ ## Environment Files
190
+
191
+ Ensure you have the appropriate `.env.local` file configured before running the containers. This file should contain:
192
+ - API keys
193
+ - Environment-specific configurations
194
+ - Other required environment variables
195
+
196
+ ## Notes
197
+
198
+ - Port 5173 is exposed and mapped for both development and production environments
199
+ - Environment variables are loaded from `.env.local`
200
+ - Different profiles (development/production) can be used for different deployment scenarios
201
+ - The configuration supports both local development and production deployment