首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在S3FS中使用扩展底座卷吗?

我可以在S3FS中使用扩展底座卷吗?
EN

Stack Overflow用户
提问于 2018-07-18 23:36:36
回答 0查看 1.1K关注 0票数 2

我希望在我的容器之间有一个共享目录:ftps3fs。为此,我在我的docker-compose文件中创建了一个名为s3的卷。

如果我停止s3fs在我的s3fs容器中运行,那么我可以在ftp容器中创建文件,这些文件将显示在/home/files下的side s3fs中。

但是,在运行s3fs时,当我在ftp中创建文件时,目录/home/files仍然是空的。

这是我的/proc/mount文件的样子:

代码语言:javascript
复制
/dev/sda2 /home/files ext4 rw,relatime,data=ordered 0 0
s3fs /home/files fuse.s3fs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0

我相信fuse可能会覆盖我的docker卷,以前有人遇到过这个问题吗?

docker-compose.yml

代码语言:javascript
复制
version: "3"
services:
  ftp:
    image: app/proftpd:latest
    volumes:
      - s3:/home/files
    ports:
      - 2222:2222

  s3fs:
    image: app/s3fs:latest
    command: start
    env_file:
      - s3fs/aws.env
    volumes:
      - s3:/home/files
    cap_add:
      - SYS_ADMIN
    devices:
      - "/dev/fuse"
    environment:
      ENVIRONMENT: "dev"

volumes:
  s3:

s3fs - Dockerfile文件

代码语言:javascript
复制
FROM ubuntu:16.04

RUN apt-get update -qq
RUN apt-get install -y \
            software-properties-common
RUN apt-get update -qq
RUN apt-get install -y \
            automake \
            autotools-dev \
            fuse \
            g++ \
            git \
            libcurl4-openssl-dev \
            libfuse-dev \
            libssl-dev \
            libxml2-dev \
            make \
            pkg-config \
            curl

RUN curl -L https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.84.tar.gz | tar zxv -C /usr/src
RUN cd /usr/src/s3fs-fuse-1.84 && ./autogen.sh && ./configure --prefix=/usr --with-openssl && make && make install

COPY entrypoint.sh /opt/s3fs/bin/entrypoint.sh

RUN mkdir -p /home/files

WORKDIR /opt/s3fs/bin

ENTRYPOINT ["/bin/sh", "./entrypoint.sh"]

s3fs - entrypoint.sh

代码语言:javascript
复制
#!/usr/bin/env bash

case $1 in

start)
    echo "Starting S3Fs: "
    s3fs mybucket /home/files -o allow_other,nonempty -d -d
;;

esac

ftp - Dockerfile

代码语言:javascript
复制
FROM ubuntu:16.04

RUN apt-get update && apt-get install -y \
    openssh-server \
    proftpd-basic \
    proftpd-mod-mysql

COPY proftpd.conf /etc/proftpd/proftpd.conf
COPY sftp.conf /etc/proftpd/conf.d/sftp.conf
COPY setup.sh /etc/proftpd/setup.sh

RUN chmod 500 /etc/proftpd/setup.sh && /etc/proftpd/setup.sh

EXPOSE 2222

ENTRYPOINT ["/bin/sh", "/etc/proftpd/entrypoint.sh"]
EN

回答

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

https://stackoverflow.com/questions/51405965

复制
相关文章

相似问题

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