add:db migration to dockerbuild and edit origin url
This commit is contained in:
11
Dockerfile
11
Dockerfile
@@ -54,6 +54,14 @@ RUN npm ci --omit=dev
|
|||||||
# Copy built app from builder
|
# Copy built app from builder
|
||||||
COPY --from=builder /app/build ./build
|
COPY --from=builder /app/build ./build
|
||||||
|
|
||||||
|
# Copy drizzle migrations and config
|
||||||
|
COPY --from=builder /app/drizzle ./drizzle
|
||||||
|
COPY --from=builder /app/drizzle.config.ts ./drizzle.config.ts
|
||||||
|
|
||||||
|
# Copy entrypoint script
|
||||||
|
COPY docker-entrypoint.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
# Expose port
|
# Expose port
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
@@ -61,5 +69,8 @@ EXPOSE 3000
|
|||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
ENV ORIGIN=http://localhost:3000
|
ENV ORIGIN=http://localhost:3000
|
||||||
|
|
||||||
|
# Use entrypoint script
|
||||||
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||||
|
|
||||||
# Start the app
|
# Start the app
|
||||||
CMD ["node", "build"]
|
CMD ["node", "build"]
|
||||||
|
|||||||
30
docker-entrypoint.sh
Normal file
30
docker-entrypoint.sh
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Running database migrations..."
|
||||||
|
|
||||||
|
# Run migrations using the drizzle migration files
|
||||||
|
node -e "
|
||||||
|
const { drizzle } = require('drizzle-orm/postgres-js');
|
||||||
|
const postgres = require('postgres');
|
||||||
|
const { migrate } = require('drizzle-orm/postgres-js/migrator');
|
||||||
|
|
||||||
|
async function runMigrations() {
|
||||||
|
const migrationClient = postgres(process.env.DATABASE_URL, { max: 1 });
|
||||||
|
const db = drizzle(migrationClient);
|
||||||
|
|
||||||
|
console.log('Starting migration...');
|
||||||
|
await migrate(db, { migrationsFolder: './drizzle' });
|
||||||
|
console.log('Migration completed successfully!');
|
||||||
|
|
||||||
|
await migrationClient.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
runMigrations().catch((err) => {
|
||||||
|
console.error('Migration failed:', err);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
|
"
|
||||||
|
|
||||||
|
echo "Starting application..."
|
||||||
|
exec "$@"
|
||||||
@@ -13,9 +13,9 @@ export const handle: Handle = async ({ event, resolve }) => {
|
|||||||
!origin ||
|
!origin ||
|
||||||
origin.includes('localhost') ||
|
origin.includes('localhost') ||
|
||||||
origin.includes('127.0.0.1') ||
|
origin.includes('127.0.0.1') ||
|
||||||
origin.includes('serengo.ziasvannes.tech')
|
origin.includes('serengo.zias.be')
|
||||||
) {
|
) {
|
||||||
// Allow in development and serengo.ziasvannes.tech
|
// Allow in development and serengo.zias.be
|
||||||
}
|
}
|
||||||
// In production, you would add: else if (origin !== 'yourdomain.com') { return new Response('Forbidden', { status: 403 }); }
|
// In production, you would add: else if (origin !== 'yourdomain.com') { return new Response('Forbidden', { status: 403 }); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ import { GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET } from '$env/static/private';
|
|||||||
export const google = new Google(
|
export const google = new Google(
|
||||||
GOOGLE_CLIENT_ID,
|
GOOGLE_CLIENT_ID,
|
||||||
GOOGLE_CLIENT_SECRET,
|
GOOGLE_CLIENT_SECRET,
|
||||||
'https://serengo.ziasvannes.tech/login/google/callback'
|
'https://serengo.zias.be/login/google/callback'
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Disallow: /_app/
|
|||||||
Disallow: /.svelte-kit/
|
Disallow: /.svelte-kit/
|
||||||
|
|
||||||
# Sitemap location
|
# Sitemap location
|
||||||
Sitemap: https://serengo.ziasvannes.tech/sitemap.xml
|
Sitemap: https://serengo.zias.be/sitemap.xml
|
||||||
|
|
||||||
# Crawl delay for polite crawling
|
# Crawl delay for polite crawling
|
||||||
Crawl-delay: 1
|
Crawl-delay: 1
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ const config = {
|
|||||||
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
|
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
|
||||||
adapter: adapter(),
|
adapter: adapter(),
|
||||||
csrf: {
|
csrf: {
|
||||||
trustedOrigins: ['http://localhost:3000', 'https://serengo.ziasvannes.tech']
|
trustedOrigins: ['http://localhost:3000', 'https://serengo.zias.be']
|
||||||
},
|
},
|
||||||
alias: {
|
alias: {
|
||||||
'@/*': './src/lib/*'
|
'@/*': './src/lib/*'
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { defineConfig } from 'vite';
|
|||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [tailwindcss(), sveltekit()],
|
plugins: [tailwindcss(), sveltekit()],
|
||||||
preview: { allowedHosts: ['ziasvannes.tech'] },
|
preview: { allowedHosts: ['zias.be'] },
|
||||||
build: {
|
build: {
|
||||||
target: 'es2020',
|
target: 'es2020',
|
||||||
cssCodeSplit: true
|
cssCodeSplit: true
|
||||||
|
|||||||
Reference in New Issue
Block a user