The use of nouns as attibutive adjectives ("épithètes") is a trend that is growing in importance in a small area of vocabulary building. There seems to be to a certain extent enough freedom in coining terms along the lines accepted in this area; certain relations have to be respected between the two words.
This site, Pluriel des noms adjectivés, provides a few instances, as wwell as the rule of formation of the plurals.
However, personally, I'd rather consider such constructions as constituting compound words: the concept of gradability and comparison are irrelevant.
relation for "X Y": an X that is also a Y ("un X qui est aussi un Y")
- ballon sonde, ville dortoir, prêtre ouvrier, maison mère, carte mère, Dupont père, homme-serpent, poisson-chat, oiseau mouche, professeur femme, médecin femme,
there are other relations
- liaison satellite (link by means of satellites), train grande vitesse (train à grande vitesse),
beginning of a truly adjectival use
- clochard (rare, p. métaph.) — des cités plus clochardes les unes que les autres,
In the domain of both attributive and predicative adjectives, only certain nouns, rather rare, can be used as adjectives; they are shown in dictionaries.
some -ard ending nouns
(primarily a noun) veinard
(adj and noun) geignard, bâtard, béquillard, binoclard, cabochard, poissard, etc.
some -eur ending nouns (either primarily adj or primarily noun)
- voleur, menteur, travailleur, flâneur, railleur, moqueur, rieur, raseur, (change of meaning), hâbleur,
rateur (noun), râleur, tueur, directeur, penseur,
There are all sorts of nouns of impredictable nature that can be used as true adjectives, although not fully.
- chien (change of meaning),
chat, cochon (change of meaning), mouton (change of meaning), chameau (change of meaning), vache (change of meaning), oie (restricted use), fille (rare, Colette), croyant, mutant, sadique, émérite (primarily adj.), glouton (primarily adj.), traitre,
For instance "chien" is not used attributively, but can be used in comparisons ("il est encore plus chien"). On the contrary "cochon" (dirty) is used attributively ("un filme cochon", "un roman cochon"), but also predicatively (ref.). Usage must be learned one way or another; checking in dictionaries is not sufficient, at least for the time being, but will help: for instance, you can check "chien" in the TLFi, and you will find only examples of predicative use, but not the grammatical label "only in predicative use"; it is clearly not sufficient for acquiring effective knowledge.