@@ -127,7 +127,7 @@ pub async fn deploy(opts: DeployOpts<'_>) -> Result<Vec<Uuid>> {
127
127
128
128
// Setup Rivetkit
129
129
let mut _rivet_actor_tempfiles = Vec :: new ( ) ;
130
- let mut _rivet_actor_tempdirs = Vec :: new ( ) ;
130
+ // let mut _rivet_actor_tempdirs = Vec::new();
131
131
if let Some ( rivetkit) = & root. rivetkit {
132
132
// Create service token
133
133
let service_token =
@@ -175,37 +175,42 @@ pub async fn deploy(opts: DeployOpts<'_>) -> Result<Vec<Uuid>> {
175
175
. await ?;
176
176
177
177
// Determine server runtime
178
- let function_build = if rivetkit. build . image . is_some ( )
179
- || rivetkit. build . dockerfile . is_some ( )
180
- {
181
- // Use user-provided Docker config
182
- rivetkit. build . clone ( )
183
- } else {
184
- // Auto-generate server Dockerfile
185
- //
186
- // Has to be in the project path in order to use NPM dependencies
187
- let dockerfile_tempdir = tempfile:: Builder :: new ( ) . prefix ( "rivet-server-" ) . tempdir ( ) ?;
188
- let dockerfile_path = dockerfile_tempdir. path ( ) . join ( "Dockerfile" ) ;
189
- let dockerignore_path = dockerfile_tempdir. path ( ) . join ( "Dockerfile.dockerignore" ) ;
190
- _rivet_actor_tempdirs. push ( dockerfile_tempdir) ;
191
-
192
- let server_path = rivetkit. server . clone ( ) ;
193
- tokio:: fs:: write (
194
- & dockerfile_path,
195
- generate_server_dockerfile ( & project_root, server_path) ,
196
- )
197
- . await ?;
198
- tokio:: fs:: write ( & dockerignore_path, generate_server_dockerignore ( ) ) . await ?;
199
-
200
- toolchain:: config:: build:: docker:: Build {
201
- dockerfile : Some ( dockerfile_path. display ( ) . to_string ( ) ) ,
202
- build_path : Some ( project_root. display ( ) . to_string ( ) ) ,
203
- image : None ,
204
- build_target : None ,
205
- build_args : None ,
206
- unstable : rivetkit. build . unstable . clone ( ) ,
207
- }
208
- } ;
178
+ let function_build =
179
+ if rivetkit. build . image . is_some ( ) || rivetkit. build . dockerfile . is_some ( ) {
180
+ // Use user-provided Docker config
181
+ rivetkit. build . clone ( )
182
+ } else {
183
+ // Auto-generate server Dockerfile
184
+ //
185
+ // Has to be in the project path in order to use NPM dependencies
186
+ //
187
+ // Preserve the paths because we want to be able to let the user to test the Dockerfile
188
+ // that's printed out
189
+ let dockerfile_tempdir = tempfile:: Builder :: new ( )
190
+ . prefix ( "rivet-server-" )
191
+ . tempdir ( ) ?
192
+ . into_path ( ) ;
193
+ let dockerfile_path = dockerfile_tempdir. join ( "Dockerfile" ) ;
194
+ let dockerignore_path = dockerfile_tempdir. join ( "Dockerfile.dockerignore" ) ;
195
+ // _rivet_actor_tempdirs.push(dockerfile_tempdir);
196
+
197
+ let server_path = rivetkit. server . clone ( ) ;
198
+ tokio:: fs:: write (
199
+ & dockerfile_path,
200
+ generate_server_dockerfile ( & project_root, server_path) ,
201
+ )
202
+ . await ?;
203
+ tokio:: fs:: write ( & dockerignore_path, generate_server_dockerignore ( ) ) . await ?;
204
+
205
+ toolchain:: config:: build:: docker:: Build {
206
+ dockerfile : Some ( dockerfile_path. display ( ) . to_string ( ) ) ,
207
+ build_path : Some ( project_root. display ( ) . to_string ( ) ) ,
208
+ image : None ,
209
+ build_target : None ,
210
+ build_args : None ,
211
+ unstable : rivetkit. build . unstable . clone ( ) ,
212
+ }
213
+ } ;
209
214
210
215
// Add function
211
216
root. functions . insert (
@@ -716,8 +721,6 @@ fn generate_dockerfile_for_package_manager(
716
721
package_manager : & PackageManager ,
717
722
server_path_js : & str ,
718
723
) -> String {
719
- let copy_files = package_manager. copy_files . join ( " " ) ;
720
-
721
724
// Determine package manager specific configurations
722
725
let ( base_image, setup_commands, build_cmd, runtime_cmd, add_deps_cmd) = match package_manager. name . as_str ( ) {
723
726
"yarn" => (
@@ -732,7 +735,7 @@ fn generate_dockerfile_for_package_manager(
732
735
"" ,
733
736
"bunx tsc --outDir dist/ --rootDir ./" ,
734
737
"bun run" ,
735
- "bun add @hono/node-server @hono/node-ws "
738
+ "echo noop "
736
739
) ,
737
740
"pnpm" => (
738
741
"node:22-alpine" ,
@@ -753,6 +756,7 @@ fn generate_dockerfile_for_package_manager(
753
756
let mut dockerfile = String :: new ( ) ;
754
757
755
758
// Builder stage
759
+ let copy_files = package_manager. copy_files . join ( " " ) ;
756
760
dockerfile. push_str ( & format ! ( "FROM {} AS builder\n \n " , base_image) ) ;
757
761
dockerfile. push_str ( "WORKDIR /app\n \n " ) ;
758
762
dockerfile. push_str ( & format ! ( "# Copy package files\n COPY {} ./\n \n " , copy_files) ) ;
@@ -793,9 +797,14 @@ fn generate_dockerfile_for_package_manager(
793
797
dockerfile. push_str ( "\n \n " ) ;
794
798
}
795
799
800
+ let app_copy_files = package_manager
801
+ . copy_files
802
+ . iter ( )
803
+ . map ( |x| format ! ( "/app/{x}" ) )
804
+ . collect :: < Vec < _ > > ( )
805
+ . join ( " " ) ;
796
806
dockerfile. push_str ( & format ! (
797
- "COPY --from=builder --chown=rivet:rivet /app/{} ./\n \n " ,
798
- copy_files
807
+ "COPY --from=builder --chown=rivet:rivet {app_copy_files} ./\n \n "
799
808
) ) ;
800
809
801
810
// Install production dependencies
0 commit comments