Sign in to follow this  
DXSh

Развёртывание с Docker Compose где код?

Recommended Posts

DXSh
root@vps-65623:~/cezerin# sudo docker exec -it 098087907a8c sh
# ls
Dockerfile  README.md  dist  locales  nginx	    package-lock.json  postcss.config.js  public   src	  webpack.config.store.js
LICENSE     config     docs  logs     node_modules  package.json       process.json	  scripts  theme
# cd logs
# ls
README.md  server.log
# nl server.log
     1	{"message":"Store running at http://localhost:3000","level":"info"}
# 

 

root@vps-65623:~# sudo docker exec -it 098087907a8c sh
# ls
Dockerfile  README.md  dist  locales  nginx	    package-lock.json  postcss.config.js  public   src	  webpack.config.store.js
LICENSE     config     docs  logs     node_modules  package.json       process.json	  scripts  theme
# nl Dockerfile
     1	FROM node:8
     2	MAINTAINER Nitin Goyal <nitingoyal.dev@gmail.com>
       
     3	ENV NGINX_CODENAME stretch
     4	ENV STORE_PORT 3000
       
     5	# install requirements and NGINX
     6	RUN echo "deb http://nginx.org/packages/debian/ ${NGINX_CODENAME} nginx" >> /etc/apt/sources.list \
     7		&& apt-get update && apt-get install --no-install-recommends --no-install-suggests -y --force-yes \
     8			gettext-base\
     9			bash \
    10			zip \
    11			unzip \
    12			wget \
    13			curl \
    14			nano \
    15			ca-certificates \
    16			nginx
       
    17	# install PM2
    18	RUN npm install pm2 -g
       
       
    19	RUN mkdir -p /var/www/cezerin2-store 
       
    20	WORKDIR /var/www/cezerin2-store 
       
    21	COPY . /var/www/cezerin2-store 
       
    22	# Nginx config
    23	COPY nginx/nginx.conf /etc/nginx/
    24	COPY nginx/default.conf.template /etc/nginx/conf.d/
       
    25	# script to run Nginx and PM2
    26	COPY docker-entrypoint.sh /usr/local/bin/
    27	RUN chmod +x "/usr/local/bin/docker-entrypoint.sh"
       
    28	# build project
    29	RUN cd /var/www/cezerin2-store \
    30		&& npm install \
    31		&& npm run build
       
       
    32	EXPOSE 80
       
    33	# start Nginx, PM2
    34	ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
# pwd
/var/www/cezerin
# 

 

не могу понять в докерфайле указано 

RUN mkdir -p /var/www/cezerin2-store 

а в контейнере /var/www/cezerin

Share this post


Link to post
Share on other sites
support
27 минут назад, DXSh сказал:

root@vps-65623:~/cezerin# sudo docker exec -it 098087907a8c sh
# ls
Dockerfile  README.md  dist  locales  nginx	    package-lock.json  postcss.config.js  public   src	  webpack.config.store.js
LICENSE     config     docs  logs     node_modules  package.json       process.json	  scripts  theme
# cd logs
# ls
README.md  server.log
# nl server.log
     1	{"message":"Store running at http://localhost:3000","level":"info"}
# 

 


root@vps-65623:~# sudo docker exec -it 098087907a8c sh
# ls
Dockerfile  README.md  dist  locales  nginx	    package-lock.json  postcss.config.js  public   src	  webpack.config.store.js
LICENSE     config     docs  logs     node_modules  package.json       process.json	  scripts  theme
# nl Dockerfile
     1	FROM node:8
     2	MAINTAINER Nitin Goyal <nitingoyal.dev@gmail.com>
       
     3	ENV NGINX_CODENAME stretch
     4	ENV STORE_PORT 3000
       
     5	# install requirements and NGINX
     6	RUN echo "deb http://nginx.org/packages/debian/ ${NGINX_CODENAME} nginx" >> /etc/apt/sources.list \
     7		&& apt-get update && apt-get install --no-install-recommends --no-install-suggests -y --force-yes \
     8			gettext-base\
     9			bash \
    10			zip \
    11			unzip \
    12			wget \
    13			curl \
    14			nano \
    15			ca-certificates \
    16			nginx
       
    17	# install PM2
    18	RUN npm install pm2 -g
       
       
    19	RUN mkdir -p /var/www/cezerin2-store 
       
    20	WORKDIR /var/www/cezerin2-store 
       
    21	COPY . /var/www/cezerin2-store 
       
    22	# Nginx config
    23	COPY nginx/nginx.conf /etc/nginx/
    24	COPY nginx/default.conf.template /etc/nginx/conf.d/
       
    25	# script to run Nginx and PM2
    26	COPY docker-entrypoint.sh /usr/local/bin/
    27	RUN chmod +x "/usr/local/bin/docker-entrypoint.sh"
       
    28	# build project
    29	RUN cd /var/www/cezerin2-store \
    30		&& npm install \
    31		&& npm run build
       
       
    32	EXPOSE 80
       
    33	# start Nginx, PM2
    34	ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
# pwd
/var/www/cezerin
# 

 

не могу понять в докерфайле указано 


RUN mkdir -p /var/www/cezerin2-store 

а в контейнере /var/www/cezerin

Не знаю, так глубоко я не копался в настройках докер запуска cezerin'a, вряд ли подскажу.

Могу лишь сказать, что всё точно находится на гитхабе, в репозиториях, по идее.

Может там где-то в каком-то конфиге сидит эта строка.

Share this post


Link to post
Share on other sites
DXSh
2 минуты назад, support сказал:

Могу лишь сказать, что всё точно находится на гитхабе, в репозиториях, по идее.

этот докерфайл уже из контейнера взят 

это только cezerin2-store в других контейнерах совпадает .. это явно ошибка, 

Share this post


Link to post
Share on other sites
DXSh

http://83.166.241.132:3000/ вывел каталоги с конфигами из контейнера по образу темы. Пути подцепил , но теперь ошибка не реагирует на события т. Е. Щеллкаешь по товару или ссылке,ссылка меняться а обновление страницы не происходит что то в конфигах задел наверное . 

 

Share this post


Link to post
Share on other sites
support
2 часа назад, DXSh сказал:

http://83.166.241.132:3000/ вывел каталоги с конфигами из контейнера по образу темы. Пути подцепил , но теперь ошибка не реагирует на события т. Е. Щеллкаешь по товару или ссылке,ссылка меняться а обновление страницы не происходит что то в конфигах задел наверное . 

 

Посмотрите в консоли браузера.

Видно, что у Вас не указан нормаьлно адрес API

http://localhost:3001/ajax/products?category_id&fields=path%2Cid%2Cname%2Ccategory_id%2Ccategory_name%2Csku%2Cimages%2Cenabled%2Cdiscontinued%2Cstock_status%2Cstock_quantity%2Cprice%2Con_sale%2Cregular_price%2Cattributes%2Ctags&ids&limit=8&offset=0&on_sale&price_from&price_to&search&sku&sort=-date_updated&tags

и поэтому ошибка.

Не может получить данные о товарах.

Должно же быть: http://83.166.241.132:3001/ajax/products?category_id&fields=path%2Cid%2Cname%2Ccategory_id%2Ccategory_name%2Csku%2Cimages%2Cenabled%2Cdiscontinued%2Cstock_status%2Cstock_quantity%2Cprice%2Con_sale%2Cregular_price%2Cattributes%2Ctags&ids&limit=8&offset=0&on_sale&price_from&price_to&search&sku&sort=-date_updated&tags

Видимо, при стартей контейнерами не была указана переменная: 

-e API_BASE_URL=http://83.166.241.132:3001/api/vi

т.е. адрес API не был указан.

Share this post


Link to post
Share on other sites
DXSh
1 час назад, support сказал:

e API_BASE_URL=http://83.166.241.132:3001/api/vi

Спасибо. Да где-то накосячил. 

Share this post


Link to post
Share on other sites
support
3 минуты назад, DXSh сказал:

Спасибо. Да где-то накосячил. 

Не за что, ну это точно мелочь.

Раз в целом уже запустилось.

Надо просто адрес правильно указать и всё.

В cezerin2-store приложении это надо делать.

Share this post


Link to post
Share on other sites
DXSh

В этих файлах эту переменную указал верно. 

admin.js

server.js

store.production.js

 дб_хост 

Но в cezerin2/config/server.js дб_хост  указан локальный ip, его тоже поменял, может в этом дело 

// config used by server side only
const dbHost = process.env.DB_HOST || "127.0.0.1";
const dbPort = process.env.DB_PORT || 27017;
const dbName = process.env.DB_NAME || "shop";
const dbUser = process.env.DB_USER || "";
const dbPass = process.env.DB_PASS || "";
const dbCred =
  dbUser.length > 0 || dbPass.length > 0 ? `${dbUser}:${dbPass}@` : "";

 

Share this post


Link to post
Share on other sites
DXSh
cezerin2-store:
    image: cezerin2/cezerin2-store
    environment:
      - LANGUAGE=ru
      - API_BASE_URL=http://cezerin2/api/v1
      - AJAX_BASE_URL=http://cezerin2/ajax

Эти переменные в yml 

Share this post


Link to post
Share on other sites
support
21 минуту назад, DXSh сказал:

cezerin2-store:
    image: cezerin2/cezerin2-store
    environment:
      - LANGUAGE=ru
      - API_BASE_URL=http://cezerin2/api/v1
      - AJAX_BASE_URL=http://cezerin2/ajax

Эти переменные в yml 

Вот здесь пример yml конфига - https://github.com/Cezerin2/docker-cezerin2/tree/master/cezerin2-proxy

Может такой конфиг попробовать.

Share this post


Link to post
Share on other sites
DXSh
5 часов назад, support сказал:

http://cezerin2/api/v1

Что это за путь ? 

28 минут назад, support сказал:

API_BASE_URL=http://cezerin2/api/v1

Вместо cezerin  ip тут указывать хоста на 3001 порт? 

Share this post


Link to post
Share on other sites
support
1 час назад, DXSh сказал:

Что это за путь ? 

Вместо cezerin  ip тут указывать хоста на 3001 порт? 

Да, по идее, надо указать http://83.166.241.132:3001/api/vi

Share this post


Link to post
Share on other sites
DXSh

теперь путь прописывается правильно,  завтра опишу в чём дело было, но на хосте не работает запускается на клик мышкой не реагирует http://83.166.241.132:3000/p

админка летает там без проблем ... сам  магазин не работает посмотрел логи контейнера магазина там нет сообщений ...

лог бекэнда 

2020-04-24T21:54:09: PM2 log: [--no-daemon] Continue to stream logs
2020-04-24T21:54:09: PM2 log: [--no-daemon] Exit on target PM2 exit pid=1
21:55:02 0|api  | info: API running at http://localhost:3001
21:55:02 0|api  | info: MongoDB connected successfully

 

лог админки 

> cezerin2-admin@0.35.0 build /var/www/cezerin2-admin
> webpack --config webpack.config.js --mode production

Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Hash: 9fffb8759e3b4e1fd525
Version: webpack 4.29.6
Time: 352703ms
Built at: 2020-04-24 22:00:45
                                                        Asset       Size  Chunks                    Chunk Names
                                                     404.html    4.5 KiB          [emitted]         
                               assets/css/flexboxgrid.min.css     14 KiB          [emitted]         
                                         assets/css/style.css   5.22 KiB          [emitted]         
                                     assets/data/countries.js   4.71 KiB          [emitted]         
                                    assets/data/currencies.js   4.32 KiB          [emitted]         
                                     assets/data/timezones.js   46.5 KiB          [emitted]         
         assets/images/apps/facebook-customer-chat-plugin.png    637 KiB          [emitted]  [big]  

 

Share this post


Link to post
Share on other sites
support
8 часов назад, DXSh сказал:

теперь путь прописывается правильно,  завтра опишу в чём дело было, но на хосте не работает запускается на клик мышкой не реагирует http://83.166.241.132:3000/p

 

По категориям кликает.

Но всё равно, товары не показывается потмоу что пытается грузить товары с адреса: http://localhost:3001/ajax/products?category_id=5e88ee1fd16c59003ef44532&fields=path%2Cid%2Cname%2Ccategory_id%2Ccategory_name%2Csku%2Cimages%2Cenabled%2Cdiscontinued%2Cstock_status%2Cstock_quantity%2Cprice%2Con_sale%2Cregular_price%2Cattributes%2Ctags%2Cposition&limit=30&offset=0&on_sale&price_from=0&price_to=0&search&sort=stock_status%2Cprice%2Cposition

т.е. не поменялся адрес API почему-то.

Может тогда вообще попробовать в cezerin2-store/config/store.js поменять так, убрав переменные:

	ajaxBaseUrl: 'http://83.166.241.132:3000/ajax',
	// used by Store (server side)
	apiBaseUrl: 'http://83.166.241.132:3001/api/v1',

и в cezerin2-store/config/server.js:

	ajaxBaseUrl: 'http://83.166.241.132:3000/ajax'

В Админке - Настройки - Общие.

В опции Домен как прописан домен?!

По идее, должно быть что-то вроде: http://83.166.241.132:3000

Share this post


Link to post
Share on other sites
DXSh

там проблема в том, что еще при установке прописывается хост в БД. я когда переносил архив бд с локалки с товарами там уже был локалхост. поэтому надо заходить после переноса в бд и менять на свой хост. 

Share this post


Link to post
Share on other sites
DXSh
1 час назад, support сказал:

По идее, должно быть что-то вроде: http://83.166.241.132:3000

да в админке так и прописан.

уже не знаю  откуда он его берёт  http://localhost:3001/

 

2 часа назад, support сказал:

ajaxBaseUrl: 'http://83.166.241.132:3000/ajax'

ajaxBaseUrl:  порт у меня 3001 ... 

Share this post


Link to post
Share on other sites
DXSh
# node 
> console.log(process.env)
{ STORE_PORT: '3000',
  LANGUAGE: 'ru',
  NGINX_CODENAME: 'stretch',
  NODE_VERSION: '8.17.0',
  HOSTNAME: '967454a27a43',
  YARN_VERSION: '1.21.1',
  HOME: '/root',
  TERM: 'xterm',
  AJAX_BASE_URL: 'http://83.166.241.132:3001/ajax',
  PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
  CEZERIN_VERSION: 'master',
  API_BASE_URL: 'http://83.166.241.132:3001/api/v1',
  PWD: '/var/www/cezerin' }

Это окружение в контейнере магазина cezerin2-store

Share this post


Link to post
Share on other sites
DXSh
http://83.166.241.132:3001/

что должно выводиться по этому порту в браузере? 

Share this post


Link to post
Share on other sites
DXSh
 cd server.log
sh: 4: cd: can't cd to server.log
# nl server.log
     1	{"message":"API running at http://localhost:3001","level":"info"}
     2	{"message":"MongoDB connected successfully","level":"info"}
# 

это в логе на бэкэнде ... 

в файле ~/cezerin2-master/src/index.js

app.use(responseTime());
app.use(cookieParser(settings.cookieSecretKey));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use("/ajax", ajaxRouter);
app.use("/api", apiRouter);
app.use(logger.sendResponse);

const server = app.listen(settings.apiListenPort, () => {
  const serverAddress = server.address();
  winston.info(`API running at http://localhost:${serverAddress.port}`);
});

dashboardWebSocket.listen(server);

 

Share this post


Link to post
Share on other sites
DXSh

не смог победить эту проблему, в контейнерах все ip как надо но в файле который генерирует вебпак прописан локальный хост... я уже поиском смотрел по контейнерам там localhost только в документации, модулях node и в этом файле js. 

Share this post


Link to post
Share on other sites
support
10 минут назад, DXSh сказал:

не смог победить эту проблему, в контейнерах все ip как надо но в файле который генерирует вебпак прописан локальный хост... я уже поиском смотрел по контейнерам там localhost только в документации, модулях node и в этом файле js. 

Да, очень странно.

Share this post


Link to post
Share on other sites
DXSh
7 часов назад, DXSh сказал:

ajaxBaseUrl: 'http://83.166.241.132:3000/ajax'

3001 й порт такой же как и на api ?

Share this post


Link to post
Share on other sites
DXSh
9 часов назад, support сказал:

Прописан только в одном месте в этом генерируемом файле, знать бы в какой момент он генерируется ? Вебпаком . Принудительно его в консоли стартануть ещё раз ...  Я думаю в самих образах прописан локальный адрес, когда я запускаю контейнеры он берет данные от туда но после того как контейнер создан он монтирует файлы конфигурации с сервера... + Переменные окружения ещё задаются в yml. Вот думаю на тот момент когда вебпак создаёт эти файлы там ещё локалхост. И этот файл настолько большой там много кода, что я думаю не кеширует ли он его вообще жёстко ... Где-то ещё ... 

Share this post


Link to post
Share on other sites
support
36 минут назад, DXSh сказал:

Прописан только в одном месте в этом генерируемом файле, знать бы в какой момент он генерируется ? Вебпаком . Принудительно его в консоли стартануть ещё раз ...  Я думаю в самих образах прописан локальный адрес, когда я запускаю контейнеры он берет данные от туда но после того как контейнер создан он монтирует файлы конфигурации с сервера... + Переменные окружения ещё задаются в yml. Вот думаю на тот момент когда вебпак создаёт эти файлы там ещё локалхост. И этот файл настолько большой там много кода, что я думаю не кеширует ли он его вообще жёстко ... Где-то ещё ... 

а если по файлам cezerin всем просто запустить поиск и попробовать найти этот адрес?!

т..е выкачать в папку все 3 github репозитория и запустить поиск по всем файлам.

Может найдёт что?!

 

P.S. Даже не знаю, может тоже попробовать запуститься докером на локальном компе.

Я вроде запускался для теста, всё работало.

Но я не менял url адреса, а оставлял как есть.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this