Jump to content

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


Recommended Posts

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

Link to post
Share on other sites
  • Replies 74
  • Created
  • Last Reply

Top Posters In This Topic

  • DXSh

    46

  • support

    29

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, вряд ли подскажу.

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

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

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

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

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

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

Link to post
Share on other sites

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

 

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 не был указан.

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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}@` : "";

 

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

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

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

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

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

http://cezerin2/api/v1

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

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

API_BASE_URL=http://cezerin2/api/v1

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

Link to post
Share on other sites

теперь путь прописывается правильно,  завтра опишу в чём дело было, но на хосте не работает запускается на клик мышкой не реагирует 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]  

 

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

Link to post
Share on other sites

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

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

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

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

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

 

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

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

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

Link to post
Share on other sites
# 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

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

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

Link to post
Share on other sites
 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);

 

Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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.


×
×
  • Create New...