Loopback 4 обслуживает stati c файлов, которые не отображаются в кубернетах - PullRequest
1 голос
/ 08 июля 2020

каждому. Некоторое время я бился об это головой, и, возможно, кто-то еще лучше понимает, в чем моя проблема. У меня есть приложение response и lb4, и я хочу разместить его в нашем кластере kubernetes. Я создаю проект реакции и помещаю его в папку сборки в моем проекте lb4 и обслуживаю эти файлы, используя бэкэнд lb4 также для API. Я помещаю все в контейнер docker, и когда я запускаю контейнер локально, он работает так, как я ожидал. Когда я помещаю контейнер в кубернеты, я могу использовать API из проекта l oop back, но получаю 404 при попытке попасть в GUI.

В моем проекте LB4 у меня есть это для обслуживания файлов stati c:

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;

и вот мой docker файл, который я использую:

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"]

Кто-нибудь заметил что-нибудь, что может быть проблемой? Был бы очень признателен. Спасибо.

Изменить: Думаю, проблема обнаружена. Похоже, что копирование файлов stati c на этапе копирования в моем dockerfile работает не совсем так, как я предполагал, поэтому я думаю, что это смотрит на пустую папку в кластере kubernetes. Теперь просто чтобы понять, почему это не работает.

...