Skip to main content
 首页 » 编程设计

python之docker ,pylibmc,内存缓存

2025年04月02日31qq78292959

我的项目使用了 memcached。因此,当 docker 尝试“pip install pylibmc”时,库找不到 libmemcached,因为它尚未安装。我如何组织我的 docker-compose.yml,或者我可能必须对 dockerfile 做些什么?

现在我的 docker-compose.yml 看起来像(我已经删除了 memcached 容器行):

version: '2' 
    services: 
 
      app: 
        build: . 
        volumes: 
          - ./app:/usr/src/app 
          - ./logs:/var/log 
        expose: 
          - "8000" 
        links: 
          - db:db 
        networks: 
          tickets-api: 
            ipv4_address: 172.25.0.100 
        extra_hosts: 
          - "db:172.25.0.102" 
 
      webserver: 
        image: nginx:latest 
        links: 
          - app 
          - db 
        volumes_from: 
          - app 
        volumes: 
          - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf 
          - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params 
        ports: 
          - "80:80" 
        networks: 
          tickets-api: 
            ipv4_address: 172.25.0.101 
 
      db: 
        restart: always 
        image: postgres 
        volumes: 
          - ./postgresql/pgdata:/pgdata 
        ports: 
          - "5432:5432" 
        environment: 
          - POSTGRES_USER=postgres 
          - POSTGRES_PASSWORD=postgres 
          - PGDATA=/pgdata 
        networks: 
          tickets-api: 
            ipv4_address: 172.25.0.102 
 
    networks: 
      tickets-api: 
        driver: bridge 
        ipam: 
          config: 
          - subnet: 172.25.0.0/24 

请您参考如下方法:

您有两个选择。将其安装在您的应用程序容器中或将 memcached 安装为独立容器。

选项 1

您可以添加命令以在您应用的 Dockerfile 上安装 libmemcached。

如果你使用的是某种基于 ubuntu 的镜像或者 alpine

只需添加

RUN apt-get update && apt-get install -y \ 
        libmemcached11 \ 
        libmemcachedutil2 \ 
        libmemcached-dev \ 
        libz-dev 

然后,您可以执行 pip install pylibmc

选项 2

您可以将 memcached 添加为单独的容器。只需添加您的 docker-compose

memcached: 
  image: memcached 
  ports: 
    - "11211:11211" 

当然,您需要将您的应用程序容器与 memcached 容器链接起来。