whitetown
overwrite files during deploy
if I understand correctly, when yarn build works - it uses some variables relates to environment variables. i.e. I need to create
const process = {
env: {
NEXT_PUBLIC_FIREBASE_apiKey: '${process.env.NEXT_PUBLIC_FIREBASE_apiKey ''}',
NEXT_PUBLIC_FIREBASE_authDomain: '${process.env.NEXT_PUBLIC_FIREBASE_authDomain ''}',
NEXT_PUBLIC_FIREBASE_databaseURL: '${process.env.NEXT_PUBLIC_FIREBASE_databaseURL ''}',
NEXT_PUBLIC_FIREBASE_projectId: '${process.env.NEXT_PUBLIC_FIREBASE_projectId ''}',
NEXT_PUBLIC_FIREBASE_storageBucket: '${process.env.NEXT_PUBLIC_FIREBASE_storageBucket ''}',
NEXT_PUBLIC_FIREBASE_messagingSenderId: '${process.env.NEXT_PUBLIC_FIREBASE_messagingSenderId ''}',
NEXT_PUBLIC_FIREBASE_appId: '${process.env.NEXT_PUBLIC_FIREBASE_appId ''}',
NEXT_PUBLIC_FIREBASE_measurementId: '${process.env.NEXT_PUBLIC_FIREBASE_measurementId ''}',
},
}
I do not want to keep these variables in the repo.
honestly I am not sure what will happen if I omit this command at build step. I will try
31 replies
overwrite files during deploy
because before the deploy command railway script replaces changed files with the original files from my repository.
1. in your deploy script (docker) there is a command
it copies files from the repository to the /app folder - it's OK, we need it
2. then it runs
this command modifies some files during build in the /public folder
3. then your script copies files again
this is the same command as in the step #11 [stage-0 7/10]
whatever changes in the /app folder were made - this command overwrites modified files with originals.
31 replies
overwrite files during deploy
the dockerfile contains a line
yarn build (next build)
as you may know next could need a lot of vars during build time and runtime, kind of NEXT_PUBLIC_whatever
As i see if a var not added with ARG it is undefined.
Actually, while i was playing with docker, i understood one thing (correct me if I’m wrong):
Railway creates dockerfile based on configuration settings. Probably it also exposes all vars, then runs it step by step.
So, I still think that step 10 in the railway dockerfile is unnecessary. If the project files were modified during the build, step 10 reverts all modified files back
#14 [stage-0 10/10] COPY . /app
31 replies
overwrite files during deploy
Hi again,
I have tried to deploy with Dockerfile.
on one hand it worked, on another hand it added other issues.
everything I run inside dockerfile does not see environment variables.
I found that I can expose them as
ARG RAILWAY_ENVIRONMENT
but if I have a lot of them? is there a way to expose all?
31 replies
overwrite files during deploy
I would agree with you but in this case we both will be wrong 😦
my deploy command is in the middle of dosen events and since it works locally or on vercel - I assume that it works correctly.
something in this chain changes files after the build
31 replies
overwrite files during deploy
unfortunately I am not a real backend developer and have never used Docker (only run docker desktop for some reason I do not remember). I like railway that it allows even such dumb as me to deploy everything easily.
31 replies
overwrite files during deploy
I think the issue in in this command. it's something harmful
#14 [stage-0 10/10] COPY . /app
I have set the Custom Start Command
and what I see - these files that were copied at build time and became equal are different
Starting Container
-rw-r--r-- 1 root root 1459 Sep 12 17:48 public/blue.png
-rw-r--r-- 1 root root 534 Sep 12 17:48 public/green.png
-rw-r--r-- 1 root root 5344 Sep 12 17:48 public/red.png
-rw-r--r-- 1 root root 3595 Sep 12 17:48 public/yellow.png
▲ Next.js 14.2.10
- Local: http://localhost:8080
✓ Starting...
✓ Ready in 477ms
31 replies
overwrite files during deploy
I do not see what exactly happening on railway, but in your logs
before build
#11 [stage-0 7/10] COPY . /app/. //raylway command
#12 [stage-0 8/10] RUN --mount=type=cache,id=s/b5ec3316-27dc-4e02-8b03-6218db5405fe-next/cache,target=/app/.next/cache --mount=type=cache,id=s/b5ec3316-27dc-4e02-8b03-6218db5405fe-node_modules/cache,target=/app/node_modules/.cache ./theme.sh && yarn build
then copiing and build is going..
after build
#14 [stage-0 10/10] COPY . /app
^^^^ what is this command? maybe it restores all orifinal files?
31 replies
overwrite files during deploy
huh. on vercel they are black https://all-in-black.vercel.app/
31 replies
overwrite files during deploy
Okay
I created another project, just for testing. feel free to change there anything.
e7bf8c87-4233-41c5-bb0c-1eeccb2be302
story:
1. public/ folder contains 4 colorful png file
2. theme/ folder contains black png file
3. we use cutom build command: or
4. locally all squares are black. on railway they remain colourful.
5. theme.sh:
in logs I see that files are copied and are equal
on the web they are not https://all-in-black.up.railway.app/
😉
31 replies
overwrite files during deploy
Hi....
I gave up.. it seems something happens behind the scene with files
cp -f images/favicon.ico public/favicon.ico (public/favicon.ico exists and overwritten)
cp -f images/favicon.ico public/favicon2.ico (public/favicon2.ico did not exist and copied) next build after the deploy on the web favicon.ico file is still old 😦
cp -f images/favicon.ico public/favicon2.ico (public/favicon2.ico did not exist and copied) next build after the deploy on the web favicon.ico file is still old 😦
31 replies
overwrite files during deploy
ok, files are copied but after deploy they are still old.
I have no idea why...
in the build script I added a command to check the content of destination file
it prints the new content.
but after deploy mysite.com/manifest.json - it is still old
one more file I create dynamically (adding .env variables for firebase auth)
the file is created and auth works somehow. but when I access it via web mysite.com/process-env.js - there is still original content.
is anybody there?
31 replies