Hi,
I just tried fly.io, as docker file was not present it started remote build of the app.
App is working but i want to redirect users from http to https and do minor config changes but don’t know how to get remote built docker file.
Any Idea???
A Dockerfile
was not present?
The remote builder only starts if you pass --remote-only
or if you don’t have a local Docker daemon running. This is the thing that builds Docker images.
If you have a Dockerfile
, we’ll build it.
Yes Dockerfile was not present as i have no docker running at the moment.
so how to know what config used for the deployment?
And how to redirect from http to https ?
What does your fly.toml
look like? Redirecting from http → https has to happen in the app, if you’re using one of our builders there might be a setting.
Remote builds happen with or without a Dockerfile. It sounds like you’re using one of our built in builders?
My toml file
https://justpaste.it/7b3ck
Yes I am using your builder.
Ah ok, what kind of application is that running? Node, Rails, etc? Most frameworks have a config setting for redirecting from http → https.
It is Next JS application.
I did wrote detailed email yesterday , if you can check support@fly.io .
Are you serving it with express? You might need to write a little bit of JS: How to force HTTPS with Express.js - Divio Developer Handbook
You can check the X-Forwarded-Scheme
for http
to detect how an end user actually connected to us.
That support mailbox is largely unmonitored, the community is the best place to get help with this kind of thing.
@kurt Thank you for the help.
I will try this one.
I wonder if i could also able to get the Dockerfile generated by build for reference.
It’s actually not using a Dockerfile, it’s using a Buildpack. When you ran flyctl launch
it detected a Node app, so it’s probably using the Heroku node buildpack.
If you’d rather use a Dockerfile, you can create one, then remove the [build]
section from fly.toml
. The next docs have this example Dockerfile:
# Install dependencies only when needed
FROM node:alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
# Rebuild the source code only when needed
FROM node:alpine AS builder
WORKDIR /app
COPY . .
COPY --from=deps /app/node_modules ./node_modules
RUN yarn build && yarn install --production --ignore-scripts --prefer-offline
# Production image, copy all the files and run next
FROM node:alpine AS runner
WORKDIR /app
ENV NODE_ENV production
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
# You only need to copy next.config.js if you are NOT using the default configuration
# COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./package.json
USER nextjs
EXPOSE 3000
# Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry
# Uncomment the following line in case you want to disable telemetry.
# ENV NEXT_TELEMETRY_DISABLED 1
CMD ["yarn", "start"]