首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行rake资产后重新启动docker-编写:预编译重新设置更改

在运行rake资产后重新启动docker-编写:预编译重新设置更改
EN

Stack Overflow用户
提问于 2022-04-16 05:57:27
回答 1查看 252关注 0票数 0

我目前正在尝试使用,这是一个带有的服务台票务系统。不过,我以前在一个非对接设置中使用过它,我编辑了html视图,并添加了一些我的团队所需要的标识和额外功能。然而,由于种种原因,我们很快就需要进入一个基于码头的实例。

我成功地正常安装了它,默认的撰写文件在打开容器时确实挂载了一个映像。在此之后,我就像在我现有的设置上所做的那样,应用这些更改。这些更改要求我运行

代码语言:javascript
复制
rake assets:precompile

并且只重新启动rails容器。重新启动它之后,它就工作了,并反映了所做的更改。

但是,一旦我跑了

代码语言:javascript
复制
docker-compose restart

所有容器都会重新启动(正如预期的那样),但是rails服务器似乎放弃了我所做的每一项更改,而且一切看起来就好像我刚刚提出了一个新的容器。

我试过的是:

  • 应用更改,重新启动rails容器,并将容器提交到自定义映像中并从中提取。
  • 编辑了dockerfile、entrypoint脚本来应用更改,并在安装过程中运行预编译。没起作用。

docker-compose.yml

代码语言:javascript
复制
version: '3'

services:

  zammad-backup:
    command: ["zammad-backup"]
    depends_on:
      - zammad-railsserver
      - zammad-postgresql
    entrypoint: /usr/local/bin/backup.sh
    environment:
      - BACKUP_SLEEP=86400
      - HOLD_DAYS=10
      - POSTGRESQL_USER=${POSTGRES_USER}
      - POSTGRESQL_PASSWORD=${POSTGRES_PASS}
    image: ${IMAGE_REPO}:zammad-postgresql${VERSION}
    restart: ${RESTART}
    volumes:
      - zammad-backup:/var/tmp/zammad
      - zammad-data:/opt/zammad

  zammad-elasticsearch:
    environment:
      - discovery.type=single-node
    image: ${IMAGE_REPO}:zammad-elasticsearch${VERSION}
    restart: ${RESTART}
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data

  zammad-init:
    command: ["zammad-init"]
    depends_on:
      - zammad-postgresql
    environment:
      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
      - POSTGRESQL_USER=${POSTGRES_USER}
      - POSTGRESQL_PASS=${POSTGRES_PASS}
      - REDIS_URL=${REDIS_URL}
    image: ${IMAGE_REPO}:zammad${VERSION}
    restart: on-failure
    volumes:
      - zammad-data:/opt/zammad

  zammad-memcached:
    command: memcached -m 256M
    image: memcached:1.6.10-alpine
    restart: ${RESTART}

  zammad-nginx:
    command: ["zammad-nginx"]
    expose:
      - "8080"
    depends_on:
      - zammad-railsserver
    image: ${IMAGE_REPO}:zammad${VERSION}
    restart: ${RESTART}
    volumes:
      - zammad-data:/opt/zammad

  zammad-postgresql:
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASS}
    image: ${IMAGE_REPO}:zammad-postgresql${VERSION}
    restart: ${RESTART}
    volumes:
      - postgresql-data:/var/lib/postgresql/data

  zammad-railsserver:
    command: ["zammad-railsserver"]
    depends_on:
      - zammad-memcached
      - zammad-postgresql
      - zammad-redis
    environment:
      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
      - REDIS_URL=${REDIS_URL}
    image: ${IMAGE_REPO}:zammad${VERSION}
    restart: ${RESTART}
    volumes:
      - zammad-data:/opt/zammad

  zammad-redis:
    image: redis:6.2.5-alpine
    restart: ${RESTART}

  zammad-scheduler:
    command: ["zammad-scheduler"]
    depends_on:
      - zammad-memcached
      - zammad-railsserver
      - zammad-redis
    environment:
      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
      - REDIS_URL=${REDIS_URL}
    image: ${IMAGE_REPO}:zammad${VERSION}
    restart: ${RESTART}
    volumes:
      - zammad-data:/opt/zammad

  zammad-websocket:
    command: ["zammad-websocket"]
    depends_on:
      - zammad-memcached
      - zammad-railsserver
      - zammad-redis
    environment:
      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
      - REDIS_URL=${REDIS_URL}
    image: ${IMAGE_REPO}:zammad${VERSION}
    restart: ${RESTART}
    volumes:
      - zammad-data:/opt/zammad

volumes:
  elasticsearch-data:
    driver: local
  postgresql-data:
    driver: local
  zammad-backup:
    driver: local
  zammad-data:
    driver: local
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-19 07:46:25

在几次头痛之后,我找到了一个解决办法:

我所做的:

在文件中跳槽,发现它从github中提取了一个图像,下载了该图像。提取tar.gz文件后,我应用了所需的所有更改,重新打包了tar.gz,并编辑了dockerfile以指向新图像。

在那之后,我需要强制对接-构图来重建形象。那么,即使在重新启动之后,这些更改也是持续的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71891481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档