1

everyone. Have been banging my head against this for a while, and maybe someone else has a better idea of what my issue is. I have a react and lb4 application and I want to host it on our kubernetes cluster. I build the react project and put it into a build folder in my lb4 project and serve those files while using the lb4 backend also for APIs. I put everything in a docker container, and when I run the container locally, it works as I would expect. When I put the container on kubernetes, I am able to hit the APIs from the loop back project but get a 404 when trying to hit the GUI.

In my LB4 project, I have this to serve the static files:

constructor(options: ApplicationConfig = {}) {
    super(options);

    // Set up the custom sequence
    this.sequence(MySequence);

    // Set up default home page
    this.static('/',path.join(__dirname, '../build'));
    // Customize @loopback/rest-explorer configuration here
    this.bind(RestExplorerBindings.CONFIG).to({
      path: '/explorer',
    });
    this.component(RestExplorerComponent);

    this.projectRoot = __dirname;

and here is my docker file that I'm using:

RUN mkdir -p /src/app
COPY . /src/app
WORKDIR src/app

ARG env_name

ENV NODE_ENV=env_name
ENV PUBLIC_PATH "/"

RUN npm install
RUN npm run build:client
COPY /src/client/build /src/server/


EXPOSE 3001
CMD ["npm", "run", "start"]

Anyone notice anything that might be the issue? Would appreciate it greatly. Thanks.

Edit: Kind of found the issue, I think. Looks like the copying of the static files at the copy step in my dockerfile doesn't quite work as I intended, so I think it's looking at an empty folder on the kubernetes cluster. Now just to see why that isn't working.

Keanu
  • 207
  • 2
  • 3
  • 9
  • Alright, think I got it. Looks like my docker file didn't actually copy the folder, just the contents of the folder so it wasn't putting it in the wrong directory when pushing the image to Kubernetes. Worked locally because I had tested it with built files, but I never pushed those to my repo. Lot of wasted time, but at least it's fixed. – Keanu Jul 10 '20 at 16:08

0 Answers0