首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker-compose MemoryError

Docker-compose MemoryError
EN

Stack Overflow用户
提问于 2016-11-17 18:00:10
回答 2查看 2.5K关注 0票数 5

我试着用512MB的内存在vps上启动odoo。我用docker。当我用普通的docker启动容器时,一切都很好。我是这样启动的: postgres容器:

代码语言:javascript
复制
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres

odoo容器:

代码语言:javascript
复制
docker run -p 8069:8069 --name odoo --link db:db -t odoo

没有错误,一切工作正常。然后我关闭,删除这个容器,并尝试用docker-compose做同样的事情:

代码语言:javascript
复制
app:
    image: odoo
    tty: true
    ports:
        - "8069:8069"
    volumes:
        - ./addons:/mnt/extra-addons:ro,Z
    links:
        - db:db

db:
    image: postgres
    environment:
        POSTGRES_USER: odoo
        POSTGRES_PASSWORD: odoo

当我启动的时候,我得到了MemoryError:

代码语言:javascript
复制
root@ubuntu-512mb-fra1-01:~/odoo# docker-compose -f odoo.yml up
Creating odoo_db_1
Creating odoo_app_1
Attaching to odoo_db_1, odoo_app_1
db_1   | The files belonging to this database system will be owned by user "postgres".
db_1   | This user must also own the server process.
db_1   | 
db_1   | The database cluster will be initialized with locale "en_US.utf8".
db_1   | The default database encoding has accordingly been set to "UTF8".
db_1   | The default text search configuration will be set to "english".
db_1   | 
db_1   | Data page checksums are disabled.
db_1   | 
db_1   | fixing permissions on existing directory /var/lib/postgresql/data ... ok
db_1   | creating subdirectories ... ok
db_1   | selecting default max_connections ... 100
db_1   | selecting default shared_buffers ... 128MB
db_1   | selecting dynamic shared memory implementation ... posix
db_1   | creating configuration files ... ok
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 9, in <module>
    load_entry_point('docker-compose==1.9.0', 'console_scripts', 'docker-compose')()
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 65, in main
    command()
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 117, in perform_command
    handler(command, command_options)
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 862, in up
    log_printer.run()
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/log_printer.py", line 87, in run
    for line in consume_queue(queue, self.cascade_stop):
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/log_printer.py", line 229, in consume_queue
    raise item.exc
MemoryError

我试着用谷歌搜索原因,但什么也找不到。

EN

回答 2

Stack Overflow用户

发布于 2016-11-18 02:22:01

正在运行的命令对json进行缓冲,以便它可以正确地拆分它。可能是缓冲占用了太多的内存。

你可以试着这样做:

代码语言:javascript
复制
docker-compose -f odoo.yml up -d 

这将运行"detached“。您仍然可以尝试运行docker-compose logs来查看日志。

票数 6
EN

Stack Overflow用户

发布于 2017-06-13 17:41:14

您可以尝试在odoo.yml中删除tty:true

来自https://github.com/docker/compose/issues/3106

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

https://stackoverflow.com/questions/40651796

复制
相关文章

相似问题

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