Я пытаюсь развернуть несколько проектов по одному и тому же пути.
Я работаю с виртуальной коробкой, используя Ubuntu. Я создал папку с именем multiprojects, и внутри есть 3 папки с одним проектом внутри каждого: demo , project1 и project2 .
Демонстрационная папка содержит все файлы, созданные после вызова npm run build
в демонстрационном проекте.
Проектная папка содержит папку с именем build, которая содержит все файлы, собранные после вызова npm run build
в проекте 1.
папка project2 содержит папку с именем build, в которой содержатся все файлы, сохраненные после вызова npm run build
в проекте 2.
Кроме того, project1 содержит «домашнюю страницу» в пакете. json, которая перенаправляет на project1. "homepage": "/ project1". Project2 содержит "домашнюю страницу" в пакете. json, которые перенаправляют на project2. "homepage": "/ project2" и демонстрационный проект не содержит домашней страницы в pacakage. json
Каждый проект имеет в приложении. js является собственным publi c путь:
Для Например, в демонстрационном проекте есть publicPath / demo, в project1 / project1 и, наконец, в project2 / project2
const publicPath = "/demo";
return (
translations &&
styles && (
<BrowserRouter basename={publicPath}>
<ToastProvider>
<IntlProvider
key={settings.locale}
locale={settings.locale}
defaultLocale="en"
messages={translations[settings.locale]}
>
<Routes />
</IntlProvider>
</ToastProvider>
</BrowserRouter>
)
И это мой nginx config:
server {
listen 8090;
server_name localhost;
index index.html index.htm;
location /project1 {
root /home/osboxes/Documents/multiproject/project1/build;
try_files $uri $uri/ /index.html;
}
location /project2 {
root /home/osboxes/Documents/multiproject/project2/build;
try_files $uri $uri/ /index.html;
}
location / {
root /home/osboxes/Documents/multiproject/demo;
try_files $uri $uri/ /index.html;
}
}
I У меня есть два вопроса:
- Как я могу сделать это лучше?
- Как это сделать в файле docker?