and then supply the arg during build time
sure
ARG PAYLOAD_PUBLIC_MERLIN_URL=http://localhost:3000
ENV PAYLOAD_PUBLIC_MERLIN_URL=$PAYLOAD_PUBLIC_MERLIN_URL
do you have a example of integrating env vars in Dockerfile?
If you're using Docker you will need to provide args for the build step and modify the Dockerfile
It's not really clear from this imo:
https://payloadcms.com/docs/admin/environment-vars#environment-variables-in-admin-uihad to find this thread
I guess I was looking at it the wrong way, I just looked at it as one build. But there is of course a separation in server and client build.
Actually this reply sums it nice up:
https://github.com/payloadcms/payload/issues/1654#issuecomment-1403972303check out this thread:
https://github.com/payloadcms/payload/issues/1654Can you point me to the docs that confused you? Maybe we need to clean a section up
it just feels like this is not what the docs are trying me to tell
When I add
dotenv.config()
it appears to be working
I'm pretty sure the
PAYLOAD_PUBLIC_
env variables are being replaced when you build payload (probably somewhere in your CI pipeline) Perhaps you need to define the env variables you want to use for production in there as well 🙂
So I want to hook up the preview button with a
process.env
variable. I looked around here for similar issues, and all seem to be solved by using the
PAYLOAD_PUBLIC_
prefix, which I already am using.
admin: {
...
preview: (doc) => {
const page = doc as any as Home;
let pathToUse = '';
if (page.page) {
pathToUse = page.page.slug === 'home' ? '' : page.page.slug;
}
return `${process.env.PAYLOAD_PUBLIC_WEB_URL}/api/preview? url=${process.env.PAYLOAD_PUBLIC_WEB_URL}/${pathToUse}`;
},
...
}
This works in development mode, but gives me an
undefined
for each variable after building it.
Star
Discord
online
Get dedicated engineering support directly from the Payload team.