docker+nginx+redmine+postgresql+サブディレクトリ


docker環境にredmineをインストールしたときのメモ

docker-composeで環境構築。
イメージは公式で配布されているものを使用します。

"htt[p]://hogehoge/redmine" にアクセスしたときにredmineのトップページが表示されるようにする。

用意するファイル

--- docker-compose.yml
--- nginx/
    |--- Dockerfile
    |--- config
         |--- default.conf
--- redmine/
    |--- Dockerfile

docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx
    restart: always
    environment:
      TZ: Asia/Tokyo
    build: ./nginx
    volumes:
      - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf
    hostname: nginx
    ports:
      - "80:80"
  redmine:
    image: redmine
    build: ./redmine
    restart: always
    environment:
      REDMINE_DB_POSTGRES: db
      REDMINE_DB_PASSWORD: example
      REDMINE_DB_ENCODING: utf8
      REDMINE_DB_PORT: 5432
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: example

nginx/Dockerfile

FROM nginx

nginx/config/default.config

server {
    listen       80;
    server_name  localhost;

    location /redmine {
        proxy_pass http://redmine:3000/redmine;
    }
}

redmine/Dockerfile

FROM redmine
RUN sed -i -e "$ i RedmineApp::Application.routes.default_scope = \"/redmine\"" config/environment.rb
RUN echo "Redmine::Utils::relative_url_root = \"/redmine\"" >> config/environment.rb
RUN ln -sf ${PWD}/public ${PWD}/public/redmine


起動

$ ls
docker-compose.yml  nginx  redmine

$ docker-compose up -d
Starting docker_nginx_1   ... done
Starting docker_redmine_1 ... done
Starting docker_db_1      ... done


ブラウザからアクセスしてredmineのトップページが表示されれば成功!