代码之家  ›  专栏  ›  技术社区  ›  NotSoShabby

从tar文件中提取和加载图像的区别

  •  3
  • NotSoShabby  · 技术社区  · 7 年前

    我有一个使用docker编写的系统。

    version: '3'
    services:
      base:
        container_name: base
        image: <hub host>/base
        build:
          context: ..
          dockerfile: BaseDockerfile
        environment: 
          - PYTHONPATH=/usr/local/lib/python3.6/site-packages
        volumes:
          - data:/volumes/data/
      postgres:
        container_name: postgres
        image: "postgres:latest"
        ports:
          - 5432:5432
    

    现在,我使用这个docker以两种不同的方式编写文件-在线和离线。

    在联机模式下运行 docker-compose build 然后 docker-compose push 然后ssh到服务器,我要部署它,拉取映像并运行( docker-compose pull && docker-compose up ).

    在我运行的脱机方法中 docker合成生成 (与第一个相同)然后 docker save 将每个图像加载到.tar文件中,然后使用 docker load -i <file name> 方法,然后运行 docker-compose up

    出于某种原因,我在脱机方法中得到一个错误(与numpy包不匹配有关),但在服务器中没有。

    我试过docker system prune && docker volume prune

    关于这两种方法之间的区别有什么想法吗?

    编辑: 保存码头工人:

    #!/usr/bin/env bash
    for image in $docker_hub/base redis postgres
    do
        echo "Saving $image"
        docker save $image | gzip > $directory/${image//$docker_hub}.tar.gz
    done
    

    图像加载:

    print "Loading images"
    for file in ./*.tar.gz
    do
        echo "Loading file: "$file
        docker load -i $file
    done
    

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 1945, in to_parquet
        compression=compression, **kwargs)
      File "/usr/local/lib/python3.6/site-packages/pandas/io/parquet.py", line 256, in to_parquet
        impl = get_engine(engine)
      File "/usr/local/lib/python3.6/site-packages/pandas/io/parquet.py", line 25, in get_engine
        return FastParquetImpl()
      File "/usr/local/lib/python3.6/site-packages/pandas/io/parquet.py", line 180, in __init__
        import fastparquet
      File "/usr/local/lib/python3.6/site-packages/fastparquet/__init__.py", line 8, in <module>
        from .core import read_thrift
      File "/usr/local/lib/python3.6/site-packages/fastparquet/core.py", line 13, in <module>
        from . import encoding
      File "/usr/local/lib/python3.6/site-packages/fastparquet/encoding.py", line 11, in <module>
        from .speedups import unpack_byte_array
      File "__init__.pxd", line 861, in init fastparquet.speedups
    ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216
    
    0 回复  |  直到 7 年前
    推荐文章