# Не удалось создать образ web\_only для чистой установки

**URL:** <https://meta.discourse.org/t/unable-to-create-web-only-image-for-a-fresh-install/180221>\
**Category:** Self-hosting\
**Tags:** two-container\
**Created:** [18.Февраль.2021 16:20:53 UTC](https://meta.discourse.org/t/unable-to-create-web-only-image-for-a-fresh-install/180221 "2021-02-18T16:20:53Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![ann\_eav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ann_eav/32/207897_2.png) [@ann\_eav](https://meta.discourse.org/u/ann_eav)\
**Post date:** [18.Февраль.2021 16:20:53 UTC](https://meta.discourse.org/t/unable-to-create-web-only-image-for-a-fresh-install/180221/1 "2021-02-18T16:20:53Z")

</div>

Привет 😊

Я всё ещё пытаюсь настроить наш пайплайн для работы с Discourse. У меня есть свежий контейнер Redis и свежий контейнер Postgres, которые я планирую использовать с Discourse.  
Следующий шаг, как я понимаю, — собрать образ контейнера web\_only, чтобы затем соединить их и запустить установку, но у меня не получается выполнить начальную настройку (bootstrap) контейнера.

Я получаю следующую ошибку:

```plaintext
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 4632 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
0e576a9672a887d23579100756224f920ab595b819874b5e7cbe4868f4234481
**FAILED TO BOOTSTRAP** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

```

Я запутался: почему система пытается выполнить миграцию, когда у меня ещё ничего не собрано? Неужели я делаю шаги неправильно?  
Вот файл web\_only.yml, который я использую (довольно простой):

```plaintext
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
env:
  LANG: en_US.UTF-8
  UNICORN_WORKERS: 2
  DISCOURSE_DB_USERNAME: root
  DISCOURSE_DB_PASSWORD: my-secret-pw
  DISCOURSE_DB_HOST: 127.0.0.1
  DISCOURSE_DB_NAME: communities
  DISCOURSE_DEVELOPER_EMAILS: 'email@mail.com'
  DISCOURSE_HOSTNAME: 'localhost'
  DISCOURSE_REDIS_HOST: 127.0.0.1
  SKIP_POST_DEPLOYMENT_MIGRATIONS: 1
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/discourse-slack-official.git
          - git clone https://github.com/discourse/discourse-assign.git
run:
  - exec:
      cd: /var/www/discourse
      cmd:
        - sed -i 's/GlobalSetting.serve_static_assets/true/' config/environments/production.rb
        - bash -c "touch -a /shared/log/rails/{sidekiq,puma.err,puma}.log"
        - bash -c "ln -s /shared/log/rails/{sidekiq,puma.err,puma}.log log/"
        - sed -i 's/default \$scheme;/default https;/' /etc/nginx/conf.d/discourse.conf

```

Нужно ли, чтобы контейнеры Postgres и Redis были запущены каждый раз, когда я выполняю сборку (bootstrap)? Я думал, что могу подготовить образы, загрузить их самостоятельно, а затем запускать свои окружения с этими образами, не выполняя никаких операций с базой данных…

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

- GitHub Actions: должен выполнять сборку образа в случае необходимости обновления.
  - Загружать образ в частный реестр.

- Затем мой кластер Kubernetes может получать обновления и разворачивать их в моих окружениях, от разработки до продакшена.

Ещё раз большое спасибо за всю помощь и поддержку. ✨

---

_[View the full topic](https://meta.discourse.org/t/unable-to-create-web-only-image-for-a-fresh-install/180221)._
