Home:ALL Converter>Missing resource types in the concourse/concourse docker image?

Missing resource types in the concourse/concourse docker image?

Ask Time:2018-02-27T11:23:19         Author:Pee Gee

Json Formatter

When i run the concourse/concourse docker image with compose below, and attach pgadmin to the DB, there are no rows in the BaseResourceTypes or ResourceTypes table.

I read somewhere that they are not included in the docker image (or at least the embedded migration script). This seems odd to me.

The logs keep repeating the same error message: concourse base resource type not found

I get the same error message when its a git resource type and also when i change it to a simple time resource type. From what i can tell, its because there are no BaseResourceTypes in the DB. Is this the case?

Or has the DB migration (im assuming that runs on the DB docker container at start-up) failed?

Here's my docker-compose

version: '3'

services:
  concourse-db:
    image: postgres:9.6
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: concourse
      POSTGRES_USER: concourse
      POSTGRES_PASSWORD: changeme
      PGDATA: /database

  concourse-web:
    image: concourse/concourse  
    links: [concourse-db]
    command: web
    depends_on: [concourse-db]
    ports: ["8080:8080"]
    volumes: ["./keys/web:/concourse-keys"]
    restart: unless-stopped # required so that it retries until conocurse-db comes up
    environment:
      CONCOURSE_BASIC_AUTH_USERNAME: concourse
      CONCOURSE_BASIC_AUTH_PASSWORD: changeme
      CONCOURSE_EXTERNAL_URL: http://127.0.0.1:8080
      CONCOURSE_POSTGRES_HOST: concourse-db
      CONCOURSE_POSTGRES_USER: concourse
      CONCOURSE_POSTGRES_PASSWORD: changeme
      CONCOURSE_POSTGRES_DATABASE: concourse

  concourse-worker:
    image: concourse/concourse
    privileged: true
    links: [concourse-web]
    depends_on: [concourse-web]
    command: worker
    volumes: ["./keys/web:/concourse-keys"]
    environment:
      CONCOURSE_TSA_HOST: concourse-web

logs:

Attaching to concourse2_concourse-db_1, concourse2_concourse-web_1, concourse2_concourse-worker_1
[36mconcourse-db_1      |[0m The files belonging to this database system will be owned by user "postgres".
[36mconcourse-db_1      |[0m This user must also own the server process.
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m The database cluster will be initialized with locale "en_US.utf8".
[36mconcourse-db_1      |[0m The default database encoding has accordingly been set to "UTF8".
[36mconcourse-db_1      |[0m The default text search configuration will be set to "english".
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m Data page checksums are disabled.
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m fixing permissions on existing directory /database ... ok
[36mconcourse-db_1      |[0m creating subdirectories ... ok
[36mconcourse-db_1      |[0m selecting default max_connections ... 100
[36mconcourse-db_1      |[0m selecting default shared_buffers ... 128MB
[36mconcourse-db_1      |[0m selecting dynamic shared memory implementation ... posix
[36mconcourse-db_1      |[0m creating configuration files ... ok
[36mconcourse-db_1      |[0m running bootstrap script ... ok
[36mconcourse-db_1      |[0m performing post-bootstrap initialization ... ok
[32mconcourse-worker_1  |[0m {"timestamp":"1519700724.114998102","source":"worker","message":"worker.setup.unpacking","log_level":1,"data":{"session":"1"}}
[36mconcourse-db_1      |[0m syncing data to disk ... ok
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m Success. You can now start the database server using:
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m     pg_ctl -D /database -l logfile start
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m WARNING: enabling "trust" authentication for local connections
[36mconcourse-db_1      |[0m You can change this by editing pg_hba.conf or using the option -A, or
[36mconcourse-db_1      |[0m --auth-local and --auth-host, the next time you run initdb.
[36mconcourse-db_1      |[0m waiting for server to start....LOG:  could not bind IPv6 socket: Cannot assign requested address
[36mconcourse-db_1      |[0m HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
[33mconcourse-web_1     |[0m {"timestamp":"1519700724.339243412","source":"atc","message":"atc.db.failed-to-open-db-retrying","log_level":2,"data":{"error":"dial tcp 172.23.0.2:5432: getsockopt: connection refused","session":"3"}}
[36mconcourse-db_1      |[0m LOG:  database system was shut down at 2018-02-27 03:05:22 UTC
[36mconcourse-db_1      |[0m LOG:  MultiXact member wraparound protections are now enabled
[36mconcourse-db_1      |[0m LOG:  database system is ready to accept connections
[36mconcourse-db_1      |[0m LOG:  autovacuum launcher started
[36mconcourse-db_1      |[0m  done
[36mconcourse-db_1      |[0m server started
[32mconcourse-worker_1  |[0m {"timestamp":"1519700729.189012527","source":"worker","message":"worker.setup.done","log_level":1,"data":{"session":"1"}}
[32mconcourse-worker_1  |[0m {"timestamp":"1519700729.189412594","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"archive","session":"2.1.1"}}
[33mconcourse-web_1     |[0m {"timestamp":"1519700729.340031385","source":"atc","message":"atc.db.failed-to-open-db-retrying","log_level":2,"data":{"error":"dial tcp 172.23.0.2:5432: getsockopt: connection refused","session":"3"}}
[36mconcourse-db_1      |[0m CREATE DATABASE
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m CREATE ROLE
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m LOG:  received fast shutdown request
[36mconcourse-db_1      |[0m LOG:  aborting any active transactions
[36mconcourse-db_1      |[0m LOG:  autovacuum launcher shutting down
[36mconcourse-db_1      |[0m LOG:  shutting down
[36mconcourse-db_1      |[0m waiting for server to shut down....LOG:  database system is shut down
[32mconcourse-worker_1  |[0m {"timestamp":"1519700731.520266294","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"bosh-deployment","session":"2.1.2"}}
[32mconcourse-worker_1  |[0m {"timestamp":"1519700732.135704041","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"bosh-io-release","session":"2.1.3"}}
[32mconcourse-worker_1  |[0m {"timestamp":"1519700732.371017694","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"bosh-io-stemcell","session":"2.1.4"}}
[36mconcourse-db_1      |[0m  done
[36mconcourse-db_1      |[0m server stopped
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m PostgreSQL init process complete; ready for start up.
[36mconcourse-db_1      |[0m 
[36mconcourse-db_1      |[0m LOG:  database system was shut down at 2018-02-27 03:05:31 UTC
[36mconcourse-db_1      |[0m LOG:  MultiXact member wraparound protections are now enabled
[36mconcourse-db_1      |[0m LOG:  database system is ready to accept connections
[36mconcourse-db_1      |[0m LOG:  autovacuum launcher started
[32mconcourse-worker_1  |[0m {"timestamp":"1519700732.771516323","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"cf","session":"2.1.5"}}
[32mconcourse-worker_1  |[0m {"timestamp":"1519700733.595455408","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"docker-image","session":"2.1.6"}}
[36mconcourse-db_1      |[0m ERROR:  relation "migration_version" does not exist at character 21
[36mconcourse-db_1      |[0m STATEMENT:  SELECT version FROM migration_version
[32mconcourse-worker_1  |[0m {"timestamp":"1519700737.670574188","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"git","session":"2.1.7"}}
[32mconcourse-worker_1  |[0m {"timestamp":"1519700738.554021597","source":"worker","message":"worker.garden.extract-resources.extract.extracting","log_level":1,"data":{"resource-type":"github-release","session":"2.1.8"}}
[36mconcourse-db_1      |[0m ERROR:  relation "migration_version" does not exist at character 21
[36mconcourse-db_1      |[0m STATEMENT:  SELECT version FROM migration_version
[33mconcourse-web_1     |[0m {"timestamp":"1519700738.871385574","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
[33mconcourse-web_1     |[0m {"timestamp":"1519700738.872081757","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}

The first logged error is 0m ERROR: relation "migration_version" does not exist at character 21

Is this a symptom of the migration failing?

oh and my pipeline.yml

resources:
- name: sourcecode
  type: git
  source:
    uri: https://github.com/petegee/CheekyMonkey.git

jobs:
- name: BuildDockerImage
  plan:
  - get: sourcecode
    trigger: true
  - task: build
    config:
      platform: linux
      image_resource:
        type: docker-image
        source: {repository: microsoft/dotnet}
      run:
        path: sh
        args: ["sourcecode/ci/build.sh"]

Author:Pee Gee,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/49000600/missing-resource-types-in-the-concourse-concourse-docker-image
yy