1

私はCodenvyの初心者なので、私の質問は非常にばかげている可能性があります.ちなみに、これは私の問題です:

プロジェクトを作成し、DB (postgresql) を追加するために、新しい docker ファイルを作成し、このファイルのコードを貼り付けました: https://github.com/codenvy/dockerfiles/blob/master/base/jdk7_postgresql/Dockerfile

保存してから、作成したばかりのランナーでプロジェクトを実行しましたが、次のエラーが発生しました:

[DOCKER] Setting up dh-python (1.20141111-2) ...
[DOCKER] Processing triggers for systemd (215-17+deb8u2) ...
[DOCKER] Processing triggers for libc-bin (2.19-18+deb8u1) ...
[DOCKER] Processing triggers for dbus (1.8.20-0+deb8u1) ...
[DOCKER] Starting PostgreSQL 9.3 database server:
[DOCKER] main
[DOCKER] .
[DOCKER] CREATE ROLE
[DOCKER] ---> 77b708d3360b
[DOCKER] Removing intermediate container cdd908fb498e
[DOCKER] Step 4 : ADD startup.sh /home/user/startup.sh
[DOCKER][ERROR] startup.sh: no such file or directory
[ERROR] We are having trouble starting the runner and deploying application. Either necessary files are missing or a fundamental configuration has changed.
Docker image build failed

どうすれば問題を解決できますか?前もって感謝します!

4

1 に答える 1

2

この PostgresSQL イメージは、startup.sh スクリプトを使用して postgresql サービスを開始します。https://github.com/codenvy/dockerfiles/blob/master/base/jdk7_postgresql/startup.shで見つけることができます

この問題を解決するには、プロジェクトのルートに同じ内容の新しいファイル startup.sh を作成し、それをソースとして追加します (例: ADD $src$/startup.sh /home/user/startup.sh)。また、プロジェクト ソースを挿入して期待どおりに動作させる必要もあります。その結果、Dockerfile は次のようになります。

FROM codenvy/jdk7

ENV DEBIAN_FRONTEND noninteractive

RUN sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 && \
    echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list && \
    sudo apt-get update && \
    sudo -E bash -c "apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 pwgen" && \
    sudo service postgresql start && \
    CODENVY_POSTGRESQL_PASSWORD=$(pwgen -N 1) && echo "export CODENVY_POSTGRESQL_PASSWORD=$CODENVY_POSTGRESQL_PASSWORD" >> /home/user/.postgresrc && \
    CODENVY_POSTGRESQL_DB=testdb_$(pwgen -N 1) && echo "export CODENVY_POSTGRESQL_DB=$CODENVY_POSTGRESQL_DB" >> /home/user/.postgresrc && \
    CODENVY_POSTGRESQL_USER=codenvy && echo "export CODENVY_POSTGRESQL_USER=$CODENVY_POSTGRESQL_USER" >> /home/user/.postgresrc && \
    sudo -u postgres psql --command "CREATE USER $CODENVY_POSTGRESQL_USER WITH SUPERUSER PASSWORD '$CODENVY_POSTGRESQL_PASSWORD';" && \
    sudo -u postgres createdb -O $CODENVY_POSTGRESQL_USER $CODENVY_POSTGRESQL_DB

#Inject project sources
ADD $app$ /home/user/$app$
RUN unzip -q /home/user/$app$ -d /home/user
ENV ARGUMENTS $args$

#Add file to the container
ADD $src$/startup.sh /home/user/startup.sh

RUN sudo chmod +x /home/user/startup.sh

#EXPOSE 5432

CMD sudo /home/user/startup.sh

または、単に Codenvy のデフォルトのPostgreSQL 9.3 + Java 7ランナーを使用することもできます。これは、ランナー パネル > 構成 タブにあります。

于 2015-12-17T13:36:54.897 に答える