2017-06-26 9 views
1

でpg_dumpのバージョンの不一致私はrailsAppコンテナ内のコマンドpsql --versionを実行し、私は9.4.12を取得し、私はpostgresコンテナ内の同じ実行したとき、私は9.6.2を取得します。どのようにバージョンを一致させることができますか?pg_dumpのサーバとドッキングウィンドウ

pg_dump sqlインポートを実行するRailsアプリケーションの移行を実行しようとすると、次のエラーが発生します。

pg_dump: server version: 9.6.2; pg_dump version: 9.4.12 
pg_dump: aborting because of server version mismatch 
rails aborted! 

ここに私のドッカー-compose.ymlファイルの:

version: "2.1" 
services: 
    railsApp: 
    build: 
     context: ./ 
    ports: 
     - "3000:3000" 
    links: 
     - postgres 
    volumes: 
     - .:/app 
    postgres: 
    image: postgres:9.6 
    ports: 
     - "5432:5432" 
    volumes: 
     - ./.postgres:/var/lib/postgresql 

Dockerfile:

FROM ruby:2.3.3 

# setup /app as our working directory 
RUN mkdir /app 
WORKDIR /app 

# Replace shell with bash so we can source files 
RUN rm /bin/sh && ln -s /bin/bash /bin/sh 

# Set debconf to run non-interactively 
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 

# Install base dependencies 

FROM ruby:2.3.3 

# setup /app as our working directory 
RUN mkdir /app 
WORKDIR /app 

# Replace shell with bash so we can source files 
RUN rm /bin/sh && ln -s /bin/bash /bin/sh 

# Set debconf to run non-interactively 
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 

# Install base dependencies 
RUN apt-get update && apt-get install -y -q --no-install-recommends \ 
     apt-transport-https \ 
     build-essential \ 
     ca-certificates \ 
     curl \ 
     git \ 
     libssl-dev \ 
     python \ 
     rsync \ 
     software-properties-common \ 
     wget \ 
     postgresql-client \ 
     graphicsmagick \ 
    && rm -rf /var/lib/apt/lists/* 

# Install node and npm with nvm 
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash 

ENV NVM_DIR=/root/.nvm 
ENV NODE_VERSION v7.2.1 

ENV NODE_PATH $NVM_DIR/versions/node/$NODE_VERSION 
ENV PATH  $NODE_PATH/bin:./node_modules/.bin:$PATH 


RUN source $NVM_DIR/nvm.sh \ 
    && nvm install $NODE_VERSION \ 
    && nvm alias default $NODE_VERSION \ 
    && nvm use default 

# Install our ruby dependencies 
ADD Gemfile Gemfile.lock /app/ 
RUN bundle install 

# copy the rest of our code over 
ADD . /app 

ENV RAILS_ENV development 
ENV SECRET_KEY_BASE a6bdc5f788624f00b68ff82456d94bf81bb50c2e114b2be19af2e6a9b76f9307b11d05af4093395b0471c4141b3cd638356f888e90080f8ae60710f992beba8f 

# Expose port 3000 to the Docker host, so we can access it from the outside. 
EXPOSE 3000 

# Set the default command to run our server on port 3000 
CMD ["rails", "server", "-p", "3000", "-b", "0.0.0.0"] 

答えて

0

最も簡単な方法は、ドッキングウィンドウ・コンで正しいPostgresのバージョンを使用することです。変更を行います。

postgres: 
    image: postgres:9.6 

postgres: 
    image: postgres:9.4.2 

すべての利用可能なバージョンhere

+0

私はこのエラーに遭遇しています 'DETAIL:PostgreSQLバージョン9.6でデータディレクトリが初期化されましたが、このバージョン9.4.2と互換性がありません。 ' –

+0

' .postgres'フォルダを削除しましたが、 'docker-compose up postgres'を実行して、そのエラーを再度スローします –

+0

再度確認してください。同じエラーであってはなりません – Robert

関連する問題