質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Git

    1285questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • Docker

    713questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • docker-compose

    127questions

git+docker-composeでの自動デプロイの際のパーミッションの調整

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 454

BECK_

score 80

実現したい事

git+dockerでLAMP環境構築をほぼ自動化したい。
httpd ユーザ権限にて書き込みするディレクトリのchownの手動ステップが挟まってしまい自動化出来てない。

※デザイナーにもリポジトリ配布したいので難しい事は避けたい
※自動化と書いてますが多少語弊があるので悪しからずご理解ください

困っている点

前述の通りアップロードフォームの動作でwebコンテナのapache userでの書き込みの際パーミッションエラーが出てしまい自動化できていません。

docker-compose up -dの前に手動でホスト側の該当ディレクトリのパーミッションを手動で変更をすると問題なく動作します。

git clone https://user@hogehoge/repos/
chown -R 1000:1000 ./contents/uplode.temp
docker-compse up -d


chownのステップを先行ステップのgitか後続ステップのdocker-composeで吸収できないか?

質問

gitではディレクトリーのパーミッションは管理しないと理解しているのですが、下記程度の手順で自動化をしたい場合ホスト側のフォルダーのパーミッション調整はどこ側でどの様に実装したらよいですか?

試行した事

gitのサーバーサイドupdate hook? <= git pullしたら戻ってしまう..
docker-compose buildの際? <= docker-compose.yml内でホスト側のファイルに対してコマンド発行出来る?

version: '2'
services:
  web:
    build:
      context: ./
      dockerfile: Dockerfile.web
    image: project_hoge/web
    container_name: web
    ports:
      - "80:80"
    volumes:
      - ./contents/html:/var/www/html
      - ./contents/webapp:/var/www/webapp
      - ./contents/uplode.temp:/var/www/uplode.temp
    links:
      - dbs:dbs
    depends_on:
      - dbs
    environment:
      - TZ=Asia/Tokyo
FROM centos
MAINTAINER myname

RUN yum install -y epel-release
RUN rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RUN yum install -y --enablerepo=remi httpd httpd-devel less && systemctl enable httpd.service
RUN yum install -y --enablerepo=remi,remi-php70 php71 php71-php php71-php-mbstring php71-php-mcrypt php71-php-pdo php71-php-common php71-php-pecl-memcache php71-php-pecl-memcached php71-php-mysqlnd php71-php-cli php71-php-pear php71-php-gd php71-php-pecl-imagick
RUN php71-pear install Log
RUN rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
RUN yum install -y mysql-community-client
RUN usermod -u 1000 apache && groupmod -g 1000 apache

CMD ["/sbin/init"]
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Git

    1285questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • Docker

    713questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • docker-compose

    127questions